webgoat-sql注入

advanced第五关
在注册页面输入tom' or '1'='1,显示↓,说明此处存在在注入点,被带入数据库查询。

输入tom' or '1'='2,出现报错。可以看出,对于正确与错误显示有明显的区别,故此处可以尝试基于布尔的盲注。

首先我们想到的就是取用sqlmap工具跑

  1. 抓包、将数据包复制到sqlmap文件下

  1. 输入命令
    sqlmap -r 文件路径

查看结果

爆数据库
sqlmap --no-cast --threads 3 -r /1.txt --dbs

显示结果

爆表

sqlmap --no-cast -r /1.txt -D PUBLIC --tables
到这一步时发现一直报错

使用sqlmap确实能找到注入点并且能获取到数据库名,但不能得到任何表名,故我们只能自己爆破。

根据一般设置,猜解密码字段为password,同时猜解他的长度
tom'+and+(length(password)=23)--+

返回结果

说明此字段长度为23
把包放到Intruder模式下,选择Cluster bomb(具体几个方法的用法自行百度),设置↓

设置第一个参数的值

第二个参数的值

开始爆破,建议线程数设置小一点(我推荐直接设置为1),也可以多测几次,保证正确率
完成后按照length由小到大

最终答案👇
thisisasecretfortomonly

posted @ 2023-05-23 11:44  GETEG  阅读(177)  评论(0)    收藏  举报