在windows下测试命令执行漏洞时,返回的都是乱码
找到WWW\DVWA-master\dvwa\includes\dvwaPage.inc.php
将277、286行的utf-8改为gb2312
只改head中的值还不起作用,还要改http header中Content-Type的内容
或者在php文件中修改$cmd的编码后回显,应该是可以,我没有试
1 获取当前字符串的编码
e
n
c
o
d
e
=
m
b
d
e
t
e
c
t
e
n
c
o
d
i
n
g
(
encode = mb_detect_encoding(
encode=mbdetectencoding(str, array(“ASCII”,‘UTF-8’,“GB2312”,“GBK”,‘BIG5’));
2 将字符编码改为utf-8
s
t
r
e
n
c
o
d
e
=
m
b
c
o
n
v
e
r
t
e
n
c
o
d
i
n
g
(
str_encode = mb_convert_encoding(
strencode=mbconvertencoding(str, ‘UTF-8’, $encode);
windows下无法通过分号分隔两个命令,要通过&&。(不过powershell下可以用分号分隔)
可能和shell_exec这个命令有关
$cmd = shell_exec( 'ping -c 4 ' . $target );
可以通过命令执行直接写一句话
中高级:
过滤了&&和;
可以用|来绕过过滤
还有 | ,|| ,& 等符号可以连接两条命令
一些系统命令:net user / whoami