首页
论坛
专栏
课程

分享:
### 1、反射型xss ### ①、low 漏洞代码: ``` <?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Feedback for end user echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>'; } ?> ``` 分析与利用: 直接通过$_GET方式获取name的值,之后未进行任何编码和过滤,导致用户输入一段js脚本会执行。 构造payload: ``` <script>alert(/xss/)</script> ``` 直接执行代码,如下图: ![](/upload/attach/201710/201710161527_vwboguc6hyhtpe0.jpg) ### ②、medium 漏洞代码: ``` <?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = str_replace( '<script>', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>"; } ?> ``` 分析与利用: str_replace对输入的<script>标签进行替换为空,这样当在输入上面low等级的payload的时候,就会进行过滤导致代码执行不成功,此时可以多写入一个<script>, 如 ```<scrip<script>t>alert(/xss/)</script>```,过滤方法把中间的<script>标签替换为空之后 <scrip 与t>重新组合一个<script>,成功执行代码。 也可以构造别的标签 如```<img src=0 onerror=alert(/xss1/)> ``` 或者把标签转换大小写的方式进行绕过``` <scRipt>alert(/xss2/)</sCript>``` ### ③、high 漏洞代码: ``` <?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>"; } ?> ``` 分析与利用: preg_replace执行一个正则表达式的搜索和替换,这时候不论是大小写、双层<script>都无法绕过,此时可以使用别的标签,比如刚刚使用过的<img>,构造payload ```<img src=0 onerror=alert(/xss/)>``` 执行payload之后URL变化为: http://localhost/dvwa/vulnerabilities/xss_r/?name=%3Cimg+src%3D0+onerror%3Dalert%28%2Fxss%2F%29%3E# ### ④、impossible 安全代码: ``` <?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); // Get input $name = htmlspecialchars( $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>"; } // Generate Anti-CSRF token generateSessionToken(); ?> ``` 分析: Htmlspecialchars方法将用户输入的特殊字符转换为 HTML 实体,< > “ ‘ &等字符会被转换,于是不存在xss漏洞。

上一篇 :
下一篇 :
讨论 (10)
yexianshuang 2018-2-18
 举报
眼前一亮
你是个儿吗 2018-4-8
 举报
学习学习
迷途菜鸟 2018-4-18
 举报
牛逼
woshidc 2018-4-25
 举报
感谢大人的分享~
holing 2018-5-1
 举报
感觉好像在哪看过这个,转载最好标下出处吧
OxHello 2018-5-23
 举报
看了文章以后才知道,我特么还处于low级。。。
糖果忆秋 2019-3-6
 举报
学习了
web吴彦祖 2019-5-5
 举报
实体化也只是可以绕过的
华zai 2019-8-10
 举报
厉害
在下小城 2019-9-16
 举报
牛皮
沪ICP备16048531号-1
沪公网安备 31011502006611号