07V8第26篇技术分享|简单代码审计带你基础入门XSS
Posted 07v8论安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07V8第26篇技术分享|简单代码审计带你基础入门XSS相关的知识,希望对你有一定的参考价值。
欢迎关注:07v8论安全 技术干货等你来
这是07v8的第 26 篇技术文章 希望对您有用
简单代码审计带你基础入门XSS(三)
第十一关:
http://127.0.0.1/xss/level11.php?keyword=good job!
这里跟第十关一样,想必还是隐藏了form表单的input标签属性。
审查元素发现多了一个t_ref参数,这个参数接收了上一关的url?直接看源码。
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/f6a8805b0a324b00b510f9afede5570d.jpg)
源代码:
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/696291310054424883ce9dee8e226cb7.jpg)
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link" value="'.'" type="hidden">
<input name="t_history" value="'.'" type="hidden">
<input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ref" value="'.$str33.'" type="hidden">
分析:
发现与上一关不同的是,多了一个
$str11=$_SERVER['HTTP_REFERER'];
经过str_replace()函数匹配掉<>,最后在t_ref 的vlaue值输出
先用burpsutie抓包,发现了head 部分的 Referer 指向了前一关的过关url
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/25cf02e273754e14830c1ec9a7ac373b.jpg)
既然t_ref参数的vlaue值是接受Referer的参数,可以直接修改Referer,最后参数再给到t_ref
然后成功绕过
故payload:QIANAN " onclick="alert(1) " (上一关使用了鼠标移动事件,这关用onclick事件)
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/e297cededa14438e8c6986abcdbc9f66.jpg)
成功插入,修改input的属性为Text
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/01afee7656444549b242cf08f4449c4a.jpg)
然后点击文本框,触发XSS
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/191f1fe677744272b2159dc027c10bf5.jpg)
第十二关:
http://127.0.0.1/xss/level12.php?keyword=good job!
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/f1bcb094520544c082a47404a68845b8.jpg)
十二关跟第十一关相同套路
上一关使用了input标签接受Referer的参数赋给value。
而此关是获取客户端的user-agent信息然后赋值给input标签的t_ua值,如下图:
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/8db93ffaf46b491da8fe462cec4152f2.jpg)
源代码:
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/205c72dacba147eea867ebc421bc89e4.jpg)
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link" value="'.'" type="hidden">
<input name="t_history" value="'.'" type="hidden">
<input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ua" value="'.$str33.'" type="hidden">
分析:
比上一关多了这一段代码:
$str11=$_SERVER['HTTP_USER_AGENT'];
PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息,所以此关跟上关一样。
采用抓包工具 修改数据包绕过。
故payload:QIANAN " onclick="alert(1) "
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/1f7043c567bc42a5b92639ab40dcc9e0.jpg)
插入成功,修改input的属性为Text
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/b96ad6ccdef24e1c8d924c60a2f3a37f.jpg)
点击Text文本框,触发XSS
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/24a1d4a88f4347f9b84c38253d3211f8.jpg)
第十三关:
http://127.0.0.1/xss/level13.php?keyword=good job!
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/2208f185d7cd4c5a80aef8aa1c3044b4.jpg)
这关依然有隐藏的form表单,有个t_cook参数有值
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/68b7477db0bf47878f872574ee8b8591.jpg)
源代码:
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/2220baca2c3749c6be5c611da74263fb.jpg)
<?php
setcookie("user", "call me maybe?", time()+3600);
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link" value="'.'" type="hidden">
<input name="t_history" value="'.'" type="hidden">
<input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_cook" value="'.$str33.'" type="hidden">
分析:
多了两段代码
setcookie("user", "call me maybe?", time()+3600);
$str11=$_COOKIE["user"];
Setcookie()函数创建一个名为”user”的cookie,然后把” call me maybe?” 赋值给user。
$str11接受cookie的值,然后又是一个str_replace()函数匹配去掉<>符号。
然后在t_cook的value值输出$str33的值。
因此,只要在抓包工具里修改cookie值字段的user就能达成绕过。
故payload:QIANAN " onclick="alert(1) "
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/bb87fffc306c4f3fb17b96031113f5e7.jpg)
插入成功
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/51af889d9601450284f04293557fb42a.jpg)
修改input的属性为Text,点击文本框触发XSS
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/b86623a05637484490e50d20fd987576.jpg)
第十四关:
http://127.0.0.1/xss/level14.php
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/bc0b51a63f1b4a13830ac75235c6a58a.jpg)
这一关没法玩了,因为这一关给的网址已经访问不了
查看了源码是嵌入了一iframe页面
给的网站已经失效了
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/509e888f24ae41229f03892bf4bb9035.jpg)
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/b1da641a5e8b4da6a26fe5280af7cff7.jpg)
有兴趣的小伙伴可以去
http://wooyun.jozxing.cc/static/bugs/wooyun-2016-0194934.html
查看原理,是通过修改图片的exif信息,造成解析图片exif触发XSS。
第十五关:
通过十四关的源码得到十五关的url:
http://127.0.0.1/xss/level15.php?src=1.gif
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/0c3e5fd700414d70b7bca3c82c79aa60.jpg)
右击查看了源代码。
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/4d7d8d9a83474fe1b5e8ba430a08ec34.jpg)
分析:
发现了 这段代码:
<span class="ng-include:1.gif"></span>
span便签里面引用了AngularJS ng-include 指令。
ng-include 指令用于包含外部的 HTML 文件。
这段代码是引用了1.gif,我回去看了xss小游戏的所有文件里面并没有发现这个1.gif文件,恰恰是一个提示
ng-include默认情况下包含的文件是要在同一个域名下,所以可以直接引用其他关卡的文件来触发XSS。
这里直接引用没有的1.gif
故payload:'level1.php?name=<img src=1.gif onerror=alert(1)>'
好吧,结果发现并没有什么卵用,并没有执行,好了装逼失败
百思不得其解,然后回到源代码看看
上面有段js代码引用了一个js文件,发现是一个google的一个站点,我没有挂vpn,所以打不开
![07V8第26篇技术分享|简单代码审计带你基础入门XSS(三)](https://image.cha138.com/20210429/7489f15ad9c04f32ad7966d32e77bc7d.jpg)
挂上了一个国外的一个vpn,再次访问:
127.0.0.1/xss/level15.php?src='level1.php?name=<img src=1.gif onerror=alert(1)>'
触发XSS 成功~
未完待续
感谢大家的阅读,以及对07V8的支持
每周都有精英讲师 学术分享 交流探讨
更多干货 敬请关注
以上是关于07V8第26篇技术分享|简单代码审计带你基础入门XSS的主要内容,如果未能解决你的问题,请参考以下文章