phpcms问答某模块存储型xss_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:PHP学习笔记之面向对象设计
面向对象设计是php程序开发中一个很重要的内容块,如果你想成为高级php程序员我们必须知道面向对象设计具体用法与写法。 维护简单 模块化是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名

 黑名单惹的祸啊


在回帖处,有个编辑器功能。

编辑器存在一个可以编辑源码,当时第一反映就是。这里肯定存在xss。

果不其然,但是,在开始的时候测试


<script>alert(1)</script>

以及


<img src=1 onerror=alert(1) />

的时候,发现都无法执行js代码

 

于是乎,便上http://HTML5/">html5sec.org/找些偏门的代码测试。

 

当测试:<form id="test"></form><button form="test" formaction="javascript:alert(1)">X</button>

的时候,我惊讶的发现居然没过滤。如图,点击之后触发


phpcms问答某模块存储型xss 模板无忧


当然,这个还需要点击。毕竟回帖的人不是每个人都会点击。那怎么样才能把xss的成功率扩大呢?

 

别着急。

在http://html5sec.org/里,还是有不少可以使用的代码。譬如:

<input onfocus=alert(1) autofocus> 打开页面时候触发(ie10,谷歌,火狐4.5有效)

除了上面这个,还有很多都是通杀浏览器,不一一测试,仅仅拿这个证明危害。



这样我们就可以广撒网捞鱼了。
漏洞证明:值得一提的是。<input onfocus=alert(1) autofocus> 虽然是以onfocus来执行js。但是别忘了我们还有eval。可以构造<input onfocus=eval("这里是我们想执行的代码") autofocus>

来完成攻击。构造好的js如下:



当用户访问这篇帖子,就是受害者了。




 


不再一一去尝试了。希望phpcms团队也能重视该问题。


修复方案:

该编辑器是基于黑名单过滤的。如果实在要开启编辑源码功能,建议采用白名单过滤。不然最好还是关闭开放编辑源码功能的权限,因为你们根本不知道跨站师会用哪些你们根本不知道的代码。

 

这里还有一枚反射型的xss,顺便提一下吧:

http://118.244.225.145/index.php?m=ask&c=team&a=team_list&order=team_point&catid=&belong=team&name="><script>alert%281%29<%2Fscript>

分享:PHP文件上传代码用法
php文件上传代码编写过程 1. 先判断是否上传文件 2. 如果有再来判断上传中是否出错 3. 如果出错,则提示出错信息 4. 如查没出错,再判断文件类型 5. 如果类型符合条件,再判断指定目录中有没有存在该文件 6. 如果没有就把该文件移至指定目录 在php中上传文件必须知道的

来源:模板无忧//所属分类:PHP教程/更新时间:2013-05-31
相关PHP教程