### 简要描述: PHPOK留言板管理XSS(打管理员) ### 详细说明: PHPOK留言板管理XSS(打管理员) ### 漏洞证明: [<img src="https://images.seebug.org/upload/201404/151654076f6cf8ebd1ce7bbcb6bc92ffb7d0e562.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/151654076f6cf8ebd1ce7bbcb6bc92ffb7d0e562.jpg) 测试环境: 当在 在线留言 处留言: [<img src="https://images.seebug.org/upload/201404/15165436f9266e3785c5312f1c42123be91a4840.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/15165436f9266e3785c5312f1c42123be91a4840.jpg) 留言成功后需要管理员审核才可以通过,所以不能立刻显示,当管理员登陆后台,删除该留言的时候,触发XSS: [<img src="https://images.seebug.org/upload/201404/1516553531e8a96e3889134c5d54bd84c2479838.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/1516553531e8a96e3889134c5d54bd84c2479838.jpg) 看下源码: ``` <tr id="list_1283" title="留言主题:<script>alert(document.cookie);</script> 发布日期:2014-04-11...
### 简要描述: PHPOK留言板管理XSS(打管理员) ### 详细说明: PHPOK留言板管理XSS(打管理员) ### 漏洞证明: [<img src="https://images.seebug.org/upload/201404/151654076f6cf8ebd1ce7bbcb6bc92ffb7d0e562.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/151654076f6cf8ebd1ce7bbcb6bc92ffb7d0e562.jpg) 测试环境: 当在 在线留言 处留言: [<img src="https://images.seebug.org/upload/201404/15165436f9266e3785c5312f1c42123be91a4840.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/15165436f9266e3785c5312f1c42123be91a4840.jpg) 留言成功后需要管理员审核才可以通过,所以不能立刻显示,当管理员登陆后台,删除该留言的时候,触发XSS: [<img src="https://images.seebug.org/upload/201404/1516553531e8a96e3889134c5d54bd84c2479838.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/1516553531e8a96e3889134c5d54bd84c2479838.jpg) 看下源码: ``` <tr id="list_1283" title="留言主题:<script>alert(document.cookie);</script> 发布日期:2014-04-11 20:54:04"> <td class="center"><input type="checkbox" name="ids[]" id="id_1283" value="1283" /></td> <td><span class="status0" id="status_1283" onclick="set_status(1283)" value="0"></span></td> <td><label for="id_1283"> 1283. <script>alert(document.cookie);</script></label> </td> <td class="center">2014-04-11</td> <td>evil</td> <td>evil@qq.com</td> <td>test</td> <td class="center"><input type="text" id="sort_1283" name="sort[]" class="short center" value="0" tabindex="1" /></td> <td> <a class="icon edit" href="admin.php?c=list&f=edit&id=1283" title="修改"></a> <a class="icon delete end" onclick="content_del('1283','<script>alert(document.cookie);</script>')" title="删除"></a> </td> </tr> ``` 这里过滤了,继续看删除留言的代码: ``` <a class="icon delete end" onclick="content_del('1283','<script>alert(document.cookie);</script>')" title="删除"></a> ``` 一个onclick事件,调用了content_del函数,追溯过去: 函数在 list.js 这个文件中,关键代码如下: [<img src="https://images.seebug.org/upload/201404/15165751d4a155a9b48e434cf398ad14328ad77d.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201404/15165751d4a155a9b48e434cf398ad14328ad77d.jpg) ``` $.dialog.confirm("确定要删除:<span class='red'>"+title+"</span>?<br />删除后是不能恢复的?",function(){ ``` 加上之前的代码可以看到,虽然title传过来的是: ``` <script>alert(document.cookie);</script> ``` 经过HtmlEncode的数据,但是由于htmlpersar解析是优先于jspersar的,所以单单对js事件进行htmlencode的话,经过浏览器的解析,编码的事件请求内容就会被解码,从而产生XSS。。。