BugKu-SQL注入2

题目链接

戳我

简单尝试

首先当然是去试试万能密码了,emmmm,全被过滤了......

试试弱口令呢?

adminadmin
admin123456
admin123admin123
......

然后,竟然还是弱口令.......(admin|admin123),但我岂能就这么放过它,嘿嘿,开始手注

题目给除了一些已经过滤的字符,通过尝试,发现并不是啊!!!因为我是用or,竟然也提示我非法字符?!?!!

所以,只能借用一下别的大佬的fuzz字典咯~~

查找过滤符号

判断执行语句

在一开始的尝试中,发现一共有三种返回状态:

  • 非法字符
  • 密码错误
  • 用户名错误
    所以,可以判断他是先检查用户名,在检查密码,所以可以从用户名下手~

既然布尔注入的字符都被无情的过滤了,但是!^没有被过滤啊,所以想到使用异或进行注入

爆库名

  • 构造payload:admin'^(length(database())=3)^'
  • 发现,只有在括号内的值为真时,才返回username error,所以数据库的长度为3.但是仍然不能做下去啊,因为or空格啥的都被过滤了,可太难受了,但是!我偷偷瞄了一眼别的师傅的wp,当时我就傻眼了,竟然是靠表单属性猜......

直接猜passwd的长度吧

  • 因为数据库里保存密码很有可能以md5的形式保存,所以这里对密码的长度要长点,看到结果我当时就傻眼了...因为回显长度都是367..

  • 没办法,一个一个看咯但也不是没办法嘛,枚举完后,从第一个开始按住方向下,看到username一闪而过,就往回找几个就找到了~~

  • 知道passwd的长度是32了,看来是md5没错了,那就开始爆数据吧

爆passwd的数据

  • 构造payload:admin'^(ascii(substr((passwd),1,1))=48)^'
  • emmmmm,逗号被过滤了,但是!没有关系,因为substr(columns,start,step)==substr(columnsfrom(start)for(step))
  • 但是之前尝试发现,for也被过滤了,所以只能使用substr(columnsfrom(start)),因为substr默认第三个参数是1,重新构造payload:admin'^(ascii(substr((passwd)from(1)))=48)^'
  • 开始爆破:

  • 虽然最后的数据长度都是一样的,但是比手工一点一点改快的多,只要按住方向下键,一直找就可以了,为了方便点,所以一定要先对payload1进行排序,再找

使用md5解码:

尝试登陆后台,拿到flag:

一共三种方法(目前我知道的)

  • 弱口令
  • post注入
  • 源码泄露
    - 通过工具直接拿到他的目录,然后下载flag文件,打开即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值