TJCTF-2023 ez-sql

ChinaIT 2024-02-14 16:11:01 303 0


打开题目只有一个输入框,根据题目猜测输入框存在sql注入。

于是ctrl+u查看页面源代码

这段是核心

这里用get方式将name传递到/search

根据附件给的app.js源代码

这里对name进行了长度限制,然后放入sql语句中

由于name参数没有过滤,存在sql注入漏洞

我们的目标在于读出flag

继续看代码


注意到第8,26~28行,其逻辑是

1,读取flag.txt这个文件(以utf-8的编码格式)给flag变量赋值

2,给flagTable赋值,值为‘flag_’拼接上 (把所有'-'替换为'_'的) uuid

3,检查是否存在名字为flagTable的表,如果不存在,就创建

4,将flag插入表中

目标明确:

1.读出表名

2.读出flag

利用sql注入漏洞

难点:题目限制了name的长度要小于等于6个字符(6个字符啥都干不了啊啊啊!)

想办法绕过,传入?name[0]=xxxxxxxxxxxx,无论你传多长name.length都是1

下面利用union联合注入获取表名

name[0]=xxxx' union select name,name from sqlite_master--

然后得到flag

name[0]=xxxx' union select  1,flag from (表名)--

分类:WEB
image
作者:ChinaIT

1

提交

0

收入

相关WriteUP

  • sqli-0x1 Writeup

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 8月前
  • [HackINI-2022] lfi WriteUp

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 8月前
  • just-work-type

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 8月前
  • Fetus Web

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 25天前
  • post-the-get

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 8月前