PHPOK留言管理XSS(打管理员)

admin 2021年7月25日06:18:59评论58 views字数 1414阅读4分42秒阅读模式

测试环境:

PHPOK留言管理XSS(打管理员)

当在“在线留言”处留言:

PHPOK留言管理XSS(打管理员)

留言成功后需要管理员审核才可以通过,所以不能立刻显示。

当管理员登陆后台,删除该留言的时候,触发XSS:

PHPOK留言管理XSS(打管理员)


看下源码:

01 <tr id="list_1283" title="留言主题:&lt;script&gt;alert(document.cookie);&lt;/script&gt;&#10;发布日期:2014-04-11 20:54:04">
02 <td class="center"><input type="checkbox" name="ids[]" id="id_1283" value="1283" /></td>
03 <td><span class="status0" id="status_1283" onclick="set_status(1283)" value="0"></span></td>
04 <td><label for="id_1283">
05 1283. &lt;script&gt;alert(document.cookie);&lt;/script&gt; </label>
06 </td>
07
08 <td class="center">2014-04-11</td>
09 <td>evil</td>
10 <td>[email protected]</td>
11 <td>test</td>
12 <td class="center"><input type="text" id="sort_1283" name="sort[]" class="shortcenter" value="0"tabindex="1" /></td>
13 <td>
14 <a class="icon edit" href="admin.php?c=list&f=edit&id=1283" title="修改"></a>
15 <a class="icon delete end"onclick="content_del('1283','&lt;script&gt;alert(document.cookie);&lt;/script&gt;')" title="删除"></a>
16 </td>
17 </tr>

这里过滤了,继续看删除留言的代码:

1 <a class="icon delete end" onclick="content_del('1283','&lt;script&gt;alert(document.cookie);&lt;/script&gt;')" title="删除"></a>

一个onclick事件,调用了content_del函数,追溯过去:

函数在 list.js 这个文件中,关键代码如下:

PHPOK留言管理XSS(打管理员)

1 $.dialog.confirm("确定要删除:<span class='red'>"+title+"</span>?删除后是不能恢复的?",function(){


加上之前的代码可以看到,虽然title传过来的是:

1 &lt;script&gt;alert(document.cookie);&lt;/script&gt;


经过HtmlEncode的数据,但是由于htmlpersar解析是优先于jspersar的,所以单单对js事件进行htmlencode的话,经过浏览器的解析,编码的事件请求内容就会被解码,从而产生XSS。。。

本文始发于微信公众号(T00ls):PHPOK留言管理XSS(打管理员)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月25日06:18:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHPOK留言管理XSS(打管理员)http://cn-sec.com/archives/352608.html

发表评论

匿名网友 填写信息