环境准备:
环境准备 | Windows |
靶场 | pikachu |
漏洞 | ssrf(服务器端请求伪造) |
漏洞分析:
形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据数据流:攻击者----->服务器---->目标地址
网站访问路径(服务器端访问)
而且目标路径都是以PHP结尾
靶场攻略:
访问hosts文件:
使用 dict 探测端口等操作
http://10.9.47.3/pikachu-master/vul/ssrf/ssrf_curl.php?url=dict://127.0.0.1:3306
漏洞防御:
白名单防御:
原理:我利用explode()函数对上传数据进行以 "." 分隔,以数组输出,然后使用if判断判断数组元素第二个是否为php.如果是进行拼接,如果不是输出“黑客!!!”
$octet = explode(".",$URL);
if($octet[1]!="php"){
die("黑客!!!");
}
$URL=$octet[0].".".$octet[1];
正常访问:
非法入侵
没有以php结尾
黑名单防御:
过滤 gopher、file、dict 协议
对输入的协议字段进行过滤
$black = array("file","gopher","dict");
$protoaol = explode(":",$URL);
if(in_array($protoaol[0],$black)) {
die("黑客!!!");
}
正常访问:
非法入侵: