当前位置: 首页 > article >正文

2025.1.17——三、SQLi regexp正则表达式|

题目来源:buuctf [NCTF2019]SQLi1

目录

一、打开靶机,整理信息

二、解题思路

step 1:正常注入

step 2:弄清关键字黑名单

1.目录扫描

2.bp爆破

step 3:根据过滤名单构造payload

step 4:regexp正则注入

三、小结


一、打开靶机,整理信息

        很典型的sql注入类型题目,并且是字符型注入

二、解题思路

step 1:正常注入

        尝试注入发现都显示hacker!!!说明被过滤了

step 2:弄清关键字黑名单

1.目录扫描

(dirmap安装失败,还在研究)看其他wp得到robots.txt中藏着hint.txt,即过滤字符的表

        得到两个信息:①用户名是admin,只要密码对了,就能拿到flag了;②关键字基本上都被过滤掉了,所以万能密码、时间盲注、联合注入、order by等语句都没用,并且大小写也无法绕过

2.bp爆破

        得知基本上都被过滤了,只有regexp和 \ 幸存。所以/**/可替换空格,末尾多出来的  '可以用%00截断。

step 3:根据过滤名单构造payload

        由题可得sql语句:select * from users where username='①' and passwd='②'

        我们传参位置为①和②,利用转义字符 \ 将①后面的单引号闭合掉,然后再传passwd参数,即select * from users where username='\' and passwd='②'

step 4:regexp正则注入

regexp正则注入

REGEXP注入与LIKE注入学习笔记-CSDN博客

        所以核心语句在②上,用regexp查询passwd^匹配字符串开头,%00截断后面内容,但不能在输入框提交,会被url编码然后拦截的,在bp中提交尝试用payload1:||/**/passwd/**/regexp/**/"^a";%00,发现响应里有welcome.php

        感觉接近了

        可以从第一个字符猜测password值,知道welcom.php出现在响应报文中,可以使用脚本:每周一题(四) | Wei's blog 脚本见链接(我自己还写不出来脚本)

        得到password:you_will_never_know7788990

        在输入框输入任意用户名和password即可得到flag

三、小结

        好痛苦的一道题,也有可能是在痛苦时间段做的。

1.目录扫描是web题目中常用手段,常用工具有dirsearch、dirmap

2.过滤的关键字可以用字典爆破,也可以寻找hint.txt,被过滤的关键字代表一些注入姿势的禁止,可以绕过,也可以换其他方式注入

3.regexp正则注入是新知识点

4.python脚本很重要,不得不会

5.题目一般不会给没用的信息,比如本题提示则为字符型注入


http://www.kler.cn/a/507486.html

相关文章:

  • 利用EXCEL进行XXE攻击
  • 仿射密码实验——Python实现(完整解析版)
  • 【Flink系列】4. Flink运行时架构
  • 内联变量(inline variables):在多个文件中共享全局常量
  • OpenCV实现Kuwahara滤波
  • 2025 年前端开发学习路线图完整指南
  • css3过渡总结
  • 菜品管理(day03)
  • FunASR 在Linux/Unix 平台编译
  • 渗透笔记1
  • AAPM:基于大型语言模型代理的资产定价模型,夏普比率提高9.6%
  • 深度学习加速性能分析与Roofline Model
  • PHP反序列化
  • 基于微信小程序的校园运动场地预约系统设计与实现
  • LeetCode 771. 宝石与石头
  • STM32 FreeRTOS时间片调度---FreeRTOS任务相关API函数---FreeRTOS时间管理
  • 人工智能领域单词:英文解释
  • LabVIEW串口通信调试与数据接收问题
  • 使用arthas监控诊断java应用
  • vscode accelerate deepspeed配置
  • 强推未发表!3D图!Transformer-LSTM+NSGAII工艺参数优化、工程设计优化!
  • 人脸识别SDK(Android)之项目回顾总结
  • 【Ubuntu】如何设置 GRUB 启动器的用户名和密码
  • Unix 与 Linux:操作系统的核心区别
  • 【2024年华为OD机试】(B卷,100分)- 恢复数字序列 (Java JS PythonC/C++)
  • PE文件:节表-添加节