渗透测试学习-漏洞讲解-02

渗透测试-SQL注入-02

Posted by hmoytx on August 25, 2018

前篇补充

最后讲到了有关于mysql直接写文件的操作(或者说是mysql直接拿shell),这里针对第一种情况指定目录写文件的操作补充说明。
需要写入shell并且能用菜刀连接,首先就是要能访问,也就是写入shell必须是在网站目录下,所以很多时候问题归结为找根目录的过程,这里讲一些获取根目录的方法:
网站绝对路径获取手段
1.遗留文件
一般在网站根目录下。 诸如.php.php info.php phpinfo.php test.php php_info.php
根据信息可以确定路劲 如果权限够大可以直接写入一句话
2.报错显示
构造错误语句 可能会出现报错,报错信息中存在路径
3.exp爆路径
已知cms查询对应cms爆路径的exp
4.google hacking
通过查询错误信息 warning
5.通过读取搭建平台的配置文件
有些比较懒惰的直接使用一键建站的那种平台搭建的网站,如phpstudy等。

盲注

所谓盲注,是因为sql语句构造后,选择的数据最后不能返回前端。这时候,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。盲注分三类:
基于布尔SQL盲注
基于时间SQL盲注
基于报错SQL盲注

基于时间的盲注
if(条件,true,false)
条件成立,返回第二个参数,反之第三个
在注入语句中加入sleep语句 会执行延时
例子 select 1, 2, sleep(if(database(), 1, 1)==”s”, 5, 0)
判断是否第一位是s 如果是延时0 否则5,实际中是反过来的,错误不延时,对了延时。
例子 判断字段数
1.php?name=asd’ and 1=2 union select sleep(5) –%20 看请求时间时间不到1s则不是一个字段。
1.php?name=asd’ and 1=2 union select 1, 2, sleep(5) –%20 请求时间是5s,是3个字段。

其他两种笼统的来说都是通过错误信息然后经过类似上面的步骤按位爆破来进行猜解。限于本咸鱼水平,有点分不清,就不误人子弟了。

工具使用

常见的几个工具:神器sqlmap,havij,pangolin。这里主要说下sqlmap。
sqlmap要用的话要先安装下python2.7(不知道现在3.x的有没有),然后去下载sqlmap(github上有)。
然后在目录下命令行运行:
python sqlmap.py -u"url"
这是最简单的用法。
一些参数:
-v 输出级别,最大是7
–dbs 数据库名
–data 后面个注入参数名
-r 后面跟数据包文件x.txt
–tables 列表名 –columns 列列名 –dump 列数据
–level 检测级别1-5级别越高测试越多
–risk 风险等级默认风险等级为1,此等级在大多数情况下对测试目标无害 风险等级2添加了基于时间的注入测试,等级3添加了OR测试
–technique 此参数后跟表示检测技术的大写字母,其值为B盲注、E报错、U联合、S多语句查询、T延时或Q嵌套查询
还有很多参数可以看手册,这里不继续写了。
通常如果是只提交漏洞或者出报告差不多验证就可以了。
如果要继续就要花时间去跑出表里的内容。
步骤一般是:
确认又注入点后 –tables 列出表名
-T 表名 –columns 列出所有列名 -T 表名 -C 列名 –dump 列出数据
然后解密去登进后台。

结尾

有关于注入的可能下一篇会讲解下如何刷jian补la天ji有关的,限于水平目前准备就先讲这些,后面又补充的会再加上。