php代码审计

触发漏洞点:$_SERVER['PHP_SELF']

$_SERVER['PHP_SELF']一般用来引用当前网页地址,是系统自动产生的全局变量。

若输入网址为:http://localhost/l.php/a,此时页面正常进行且并不报错

若在a的位置构造恶意js,则会执行js代码

漏洞原因:web服务器允许/xx/aa/123等形式的请求发生

漏洞利用效果:


解决方案:

1、用htmlentities($_SERVER['PHP_SELF']),将恶意代码转化为html实体,使代码无法实现


2、用$SERVER['REQUEST_URL']代替$_SERVER['PHP_SELF']

原因:$SERVER['REQUEST_URL']会原封不动的反应网址本身,而$_SERVER['PHP_SELF']会对网址进行一次urldecode。

注意:很多情况下,浏览器会对用户输入要提交给web服务器的内容进行encode,然后服务器端程序会自动进行decode

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容