【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取

XSS
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第1张图片看源码只有SQL的过滤没有XSS的过滤
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第2张图片所以我们可以插入任意XSS代码,找出login_ip字段看允许我们输入多少个字符,还需要知道管理员可以做些什么,我们的XSS攻击需要以管理员身份去执行。
在这里插入图片描述

字段长度限制为255个字符,所以我们可以在登陆时构造payload,一般都是执行远程js文件,让他可以执行更多的操作。
在这里插入图片描述
准备好攻击payload:
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第3张图片

找到管理员可以执行的操作
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第4张图片
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第5张图片

构造payload
在这里插入图片描述
退出管理员账号重新登录,用modify headers插件伪造,前面可以写IP,后面插入代码
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第6张图片
看数据库,已经成功写入
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第7张图片
去掉 " 再插入一遍Modify插件
在这里插入图片描述
管理员页面成功插入了XSS
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第8张图片
成功登录了XSS用户

修复方法:
在sqlwaf里面添加过滤
在这里插入图片描述
审计思路展现
绕过了sqlwaf函数把我们的数据传到了数据库,管理员在后台输出用户的时候就会输出代码
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第9张图片

文件包含漏洞审计
文件包含的问题是
函数参数可控
分为三段 路径、文件名、后缀
如果限制了后缀,考虑用截断或者伪协议去绕过(新版PHP已经修复了截断漏洞,伪协议也有很多路径限制)
如果打开了远程文件包含,也可以直接包含远程文件,限制了什么后缀的文件就包含什么后缀的文件,远程文件包含默认是关闭的。
限制了路径就没办法用伪协议和远程文件包含

只限制路径不限制后缀,考虑包含上传文件,包含日志文件&环境变量&session文件&临时文件
把路径和后缀都限制了,没有什么好办法去利用了

【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第10张图片
看include 是否能利用
get 一个参数和 inc 去结合,考虑截断和伪协议
在这里插入图片描述
用伪协议去绕过进而包含脚本
构造压缩包:
先准备个一句话脚本,改成inc,打个压缩包,只能上传图片所以把后缀改成png
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第11张图片
在这里插入图片描述
// phar:// path/file/xx
路径+文件名/里面所包含的压缩的文件

找到文件处理的文件看看是怎么处理的
在这里插入图片描述
访问文件的时候服务器执行会取一个时间戳,在脚本执行完毕之后会给客户端返回一个字符串格式的时间信息,需要我们把他转为时间戳,在前后猜测一个就能找到正确的时间戳,也就找到路径了。
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第12张图片把时间信息转换为时间戳
在这里插入图片描述
上传文件
用firebug抓包,找到Date 响应头,把时间字符串复制到strtotime函数里面
在这里插入图片描述
执行脚本就把时间戳输出出来了
在这里插入图片描述
找到upload 查看上传到的文件
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第13张图片
复制
在这里插入图片描述
在这里插入图片描述
就可以用伪协议去打开伪图片的压缩包去读取内部的inc 文件
去网页直接复制payload
在这里插入图片描述
验证一下
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第14张图片一句话成功的包含了,成功输出了脚本信息

为什么可以用伪协议去包含特殊文件?
伪协议可以打开压缩包并且打开其中一个文件,读取压缩包里面某一个文件的内容

如何修复
定义一个模块数组,用in_array函数判断要包含的信息 a 是 否 在 a 是否在 am数组里面,是的话就包含,不是的话就出错误
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第15张图片
可以给包含加上路径,就不能用协议去读取任意文件了 ‘./’.
在这里插入图片描述
审计思路展现
在index里面找到了include函数,发现变量是可控的,用伪协议去包含,找一个有头像上传的地方上传构造好的文件去用伪协议包含。
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第16张图片

任意文件读取
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第17张图片user_avatar 可以写多个值,但是只取最后一个字段
在这里插入图片描述
审计思路展现
上传文件时进行注入,获得数据库信息
【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取_第18张图片

你可能感兴趣的:(【PHP代码审计】XSS后台敏感操作、文件包含漏洞审计、任意文件读取)