一、普通注入
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