漏洞复现与流量分析
一、sql注入
使用Wireshark抓包
这里限制一下显示的内容为抓取和IP地址为10.4.7.151的http包
ip.dst == 10.4.7.151 && http这个地址是靶场服务器的地址
尝试进行sql注入
1’ and 1=2 union select 1,version() #通过联合查询来查找数据库的版本信息
1’ and 1=2 union select 1,database() #查看数据库名
爆出来数据库的版本信息,去Wireshark查看数据包
sql注入类型的数据包可以通过查看http请求包中是否有关键字来判断比如:union,version,database,updatexml,extractvalue,其中特殊字符如’、()等都会被url编码,空格变成+
二、xss
查看数据包能找到刚刚输入的信息,但是被url编码了
%3Cscript%3Ealert%28%27maple%27%29%3C%2Fscript%3E
和sql注入大体一样,查看关键字是否有,alert()等,特殊字符都会被url编码
三、文件上传
先上传文件
查看数据包
我们可以通过数据包查看上传文件的后缀来判断文件类型,还可以通过文件内容来判断是否为恶意文件
四、文件包含
我们使用…/来返回上级目录,查看目标主机的phpinfo文件
查看数据包
通常来讲文件包含只允许访问规定的文件,能访问到别的文件就说明存在漏洞,我们可以通过流量包访问的文件是否为规定文件来判断
五、ssrf
ssrf源码
<?php
// ssrf_curl.php
if(isset($_REQUEST['url'])){
$link = $_REQUEST['url'];
$fileName = './curled/'.time().".txt";
$curlObj = curl_init($link);
$fp = fopen($fileName,'w');
curl_setopt($curlObj,CURLOPT_FILE,$fp);
curl_setopt($curlObj,CURLOPT_HEADER,0);
curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);
curl_exec($curlObj);
curl_close($curlObj);
fclose($fp);
if(getimagesize($fileName)){
header("Content-Type:image/png");
}
$fp = fopen($fileName,'r');
$result = fread($fp,filesize($fileName));
fclose($fp);
echo $result;
}else{
echo "?url=[url]";
}
?>
进入靶场后我们按照提示输入127.0.0.1
两个目录经过对比有点差异,查看一下数据包
这个流量包说访问的地址为127.0.0.1,但是是以目标机的身份访问的,可以理解为本机伪装成目标机对服务器发起请求,查看目标机的本地地址,可以通过协议、请求的资源地址来判断是否为攻击