一、普通注入
0x00 练习过程
核心代码
<?php
if(isset($_POST["target"]))
{
$target = $_POST["target"];
if($target == "")
{
echo "<font color="red">Enter a domain name...</font>";
}
else
{
echo "<p align="left">" . shell_exec("nslookup " . commandi($target)) . "</p>";
}
}
?>
从代码中我们可以知道输入的target
在shell_exec()
函数中直接lookup
然后输出
low等级不对输入的参数进行过滤,直接加;
就行
payload:www.nsa.gov;whoami
2.medium
用;
不行,查看源码可得
函数过滤了&
、;
,但是没有对|
过滤
3.high
通过escapeshellcmd()函数对参数进行转义。
反斜线()会在以下字符之前插入: &#;`|*?~<>^()[]{}$, x0A 和 xFF。 ’ 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替。
二、盲注
0x00 前言
原谅我太菜了,第一次听命令注入的盲注类型。。。
0x01 练习过程
1.low
只ping一个正常的ip地址,反应时长为130ms
拼接了其他正常命令的注入,用时140ms
拼接了其他不正常命令的注入,用时140ms
0x02 结语
盲注,就是注入后页面不会返回信息,但是可以根据其他地方的区别来判断是否注入成功,get it