【WEB】October 2019 Twice SQL Injection

打开题目,进入到注册页面:

随意输入1和1进去。

登录进去,发现有输入框,猜测是不是SQL注入,再次进行测试。

发现我们的单引号被转义了。

合理猜测有addslashes的存在。

  • 它会在 '、"、\、NUL 前面加一个反斜杠。比如你输入 1' union,它变成 1\' union。
  • 在当次 SQL 里,\' 表示 "一个普通的单引号字符",不再起到 "闭合字符串" 的作用,所以注入语句被封死 ------这就是第一次(注册、登录、改简介)直接注入都失败的原因 ,你在输入框里能看到回显变成了 \'。
  • 但是 :反斜杠只是给 SQL 解析器看的 "转义记号",insert 真正写进表字段时,存的是转义后的值本身,也就是那个干净的 ',反斜杠不会被存进去。
  • 于是:等以后这条数据被读出来、再拼进另一条 SQL 时,如果那个地方没再调用 addslashes ,原始的 ' 就 "复活" 了 ------ 这正是二次注入。

当我们在注册页面进行SQL注入:

zz 是个不存在的用户名,让前半截查空;

登陆后再次查看发现回显位为1。

接下来继续这样操作,脱库脱表脱列:

sql 复制代码
zz' union select database()#
sql 复制代码
zz' union select (select group_concat(table_name) from information_schema.tables where table_schema=database())#
sql 复制代码
zz' union select (select group_concat(column_name) from information_schema.columns where table_name="flag")#
sql 复制代码
zz' union select (select group_concat(flag) from flag)#
相关推荐
草莓熊Lotso5 小时前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Lethehong11 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码11 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty12 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里13 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱13 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy13 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒13 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss27314 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_1800790524714 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api