6.2.4. SSRF漏洞ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器 。 常见的方式如下:
1.可以对外网、服务器所在内网、本地进行端口扫描 , 获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用进行指纹识别 , 通过访问默认文件实现;
4.攻击内外网的web应用 , 主要是使用get参数就可以实现的攻击(比如struts2 , sqli等);
5.利用file协议读取本地文件等 。
审计要素:
- 是否存在可以产生SSRF漏洞的函数 。
- 是否存在内网ip地址正则过滤 , 且正则是否严谨 。
- 是否存在限制请求的方式只能为HTTP或者HTTPS 。
利用
file://、http/https:// 、dict://、gopher://
协议去搞内网 。列一下 , 我经常搜索的关键词
file_get_contents
fsockopen
curl_exec
get_headers
fopen
readfile
注意
- 一般情况下PHP不会开启fopen的gopher wrapper
- file_get_contents的gopher协议不能URL编码
- file_get_contents关于Gopher的302跳转会出现bug , 导致利用失败
- curl/libcurl 7.43 上gopher协议存在bug(%00截断) 经测试7.49 可用
- curl_exec() //默认不跟踪跳转 ,
- file_get_contents() // file_get_contents支持 php://input协议
6.2.5. XML外部实体注入审计要素
- 参数是否用户可控
- 是否libxml版本为2.9.0以上
- 是否禁用了外部实体
“DOMDocument” , “SimpleXMLElement”和“simplexml_load_string”
等关键词 , 分析下是否存在参数拼接的XML字符串 , 或未做限制的批量解析方法 。 对参数进行回溯 , 判断其是否用户可控 。6.2.6. 文件包含漏洞审计要素
- 参数是否用户可控
- 是否存在
include , require , include_once require_once
等函数 。
无非是
include , require , include_once require_once
这四个函数 , 全局搜索这四个函数 , 一个一个去看 , 去回溯 , 查看变量可不可控 。6.2.7. 文件上传漏洞审计要素
- 是否检查了上传文件的文件类型
- 是否限制了文件上传路径
- 是否对文件进行了重命名
- 文件大小是否限制
- 是否返回了文件路径或文件路径很好猜测
function upload
function file
如果封装了 , 那么就看这些封装好的函数 , 有没有上面提到的审计要素的漏洞 。
如果没封装 , 一般是
move_uploaded_file
这个函数 , 全局搜索 , 这个函数 , 回溯查看这些漏洞存不存在 。 (白盒黑盒一起搞比较好 。 )6.2.8. 变量覆盖审计要素
- 是否存在造成变量覆盖的函数 , 例如:
extract()、parse_str()、import_request_variables
和$$等 。
- 是否存在可以完整利用的攻击链 。
- 算法|【2022/1/15】thinkphp源码无差别阅读(二十)
- IT之家1月14日消息|netusbusb共享组件中存在严重的远程代码执行漏洞
- Python双端队列实现回文检测代码示例
- 一加科技|5万行代码来稳帧!一加10 Pro的游戏全程帧率近90,直到关机
- 浏览器|全球十大浏览器,国产浏览器上榜6款,但全部复制了美国公司内核代码
- 上海市|FairySwap现已通过Certik安全审计,PriFi生态生态即将起航
- PHP|iPhone13没创新?这个功能,几大国产旗舰都抄作业了
- PHP|30岁就带着数百亿退休,他才是真正懂得激流勇退的互联网创始人
- 低代码平台想要实现复杂的业务流程,这4个条件不能少!
- 2021年Apache 年度报告出炉,哪个项目的代码贡献最多