萌新记一次sql注入漏洞实战

NinoWEI   ·   发表于 2021-10-25 17:02:03   ·   实战纪实

前言

  1. 当时学了sql注入的部分知识,还没学到盲注,想去实战一下(遵纪守法的前提下)。通过社区文章挖到了人生中第一批sql注入漏洞。最成功的一个直接进入后台了。
  2. 在挖的过程中把挖一半失败的漏洞网址记录下来了。在学完盲注之后有新的感悟,又去试了一下,有一个网站终于有点进程了。感叹一下咱们掌控的sql注入这部分教的真好。

正文

通过URL找到目标站点

and 1=1/and 1=2 确定存在注入

order by 确定17个字段

  1. ?id=23 order by 17

发现过滤

  1. 输入-- +的时候报错提醒检测到注释符

显错位被拦截

  1. ?id=23 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
  2. 应该是过滤了select或者union


当时做到这里就结束了

以下是最近的尝试

关键词测试

  1. 这个博客有PhpMyWind的过滤规则:https://www.cnblogs.com/c1e4r/articles/8205998.html
  2. 首先过滤了--和/*所以很多绕过方式都失效了。同时会在斜杠和单引号前自动转义,以我的知识储备很难绕过。
  3. 尝试了编码绕过%55nion %53elect
  4. union被检测到了。


真麻烦,试试盲注,这里sleep等睡眠函数被禁了,只能布尔盲注。如果有大佬有绕过思路,麻烦分享一下!

布尔盲注

  1. length可以使用,一点点小激动
  2. 如下图,正常显示


database也没有被拦截
如下图,正常显示

  1. ascii数字可以,字母不行
  2. ascii(1)可以

  1. ascii(a)不可以,会报错。不知道为什么。不能试ascii('a'),单引号被转义了。

  1. and ascii(substr(database(),1,1))>106,可以,激动,那这个漏洞基本有了。

burp启动

  1. ?id=23 and length(database())=14
  2. ?id=23 and ascii(substr(database(),1,1))=106
  3. 抓包一条龙

查表得库名


继续尝试

子查询被禁止

  1. sub select detect
  2. 就先到这里吧,反正漏洞已经挖到了。之后有空再来试试绕过。

最后

  1. 如果大家有绕过思路欢迎分享!

打赏我,让我更有动力~

2 Reply   |  Until 2个月前 | 578 View

nocircle
发表于 2个月前

期待同学继续尝试新的漏洞

评论列表

  • 加载数据中...

编写评论内容

Track-聂风
发表于 2个月前

前台注入吗?还是后台注入

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2022 掌控者 All Rights Reserved.