哔哩哔哩2021-1024程序员节-安全攻防赛1-4解

哔哩哔哩2021-1024程序员节-安全攻防赛1-4解

萌新方向
1. 安全攻防–1
题目链接:https://security.bilibili.com/sec1024/q/r1.html
打开之后发现
在这里插入图片描述
f12 抓包 都没有结果,看了看链接,也没有扫文件的必要了。ctf中我们要充分利用到每个出现的字。既然说了是解密,那就从解密下手,肉眼观察字符串我们无法去辨认这串字符的加密方法。happy_1024_2233也看不出来什么,后来我有一个朋友跟我说是aes加密,happy_1024_2233是密钥,那直接解密得出了在这里插入图片描述

flag是a1cd5f84-27966146-3776f301-64031bb9

2. 安全攻防–2
题目链接:https://security.bilibili.com/sec1024/q/r2.html
打开之后发现在这里插入图片描述
点击提示会跳转到vue的手册,还提示了工程师修改了一个前端配置项目
毫无疑问f12去.vue找flag即可,进入目标https://security.bilibili.com/sec1024/q/
用ctrl+f搜不到flag,结合题目1的flag发现格式是没有规律的字符串和-结合,最终在home文件找到在这里插入图片描述

flag是36c7a7b4-cda04af0-8db0368d-b5166480

3. 安全攻防–3
题目链接:https://security.bilibili.com/sec1024/q/r3.html
访问在这里插入图片描述
下载源码打开
在这里插入图片描述

很简单的源码,以防萌新看不懂,这里做一下解释,注释中的提示就是靶场目标http://security.bilibili.com/sec1024/q/pro/eval.php

简单看一下全部函数,也就就是让传入数组,然后implode去拼接元素成字符串,最后使用exec去当命令执行

从第7行开始,首先通过get方法获取args的值,放入if去判断,count意为返回数组中元素的数目,也就是这个if去判断数组中元素不能超过3个

接着是一个循环,循环的次数是args中元素的数量,如果是3个元素,那么就从0开始循环3次

for中有一个if,去进行正则匹配,'/^\w+$/' , ^和$表示精确匹配某个字符串,多一个少一个都不行,\w表示匹配数字,大小写字母,以及_中任意一个字符,+意为一次或者多次。这个正则匹配就是,遍历args中数组的值,进行匹配,如果没有数字,大小写字母,以及下划线就会退出当前脚本

再到19行,implode()意为将数组元素组合成字符串,这句话就是把正则匹配通过的数组,把他们的元素组合成字符串,和bin/2233组合一起,保存在cmd变量中

接着20行,使用exec命令执行函数,把cmd中的字符串当命令执行,将结果保存到out变量中,之后的for就是循环打印结果

传参:?&args[]=1%0a&args[]=ls查看当前目录的文件
在这里插入图片描述
这里为什么要有一个%0a呢,因为/bin/22331这个是执行不了的,我们需要%0a去换行来执行下一个命令。

打开passwd获得flag
在这里插入图片描述

flag是9d3c3014-6c6267e7-086aaee5-1f18452a

4. 安全攻防–4
题目链接:https://security.bilibili.com/sec1024/q/r4.html
打开

一个懂得都懂,然后点击提示会跳转到百度百科sql注入在这里插入图片描述
那无疑就是sql注入
在这里插入图片描述
访问之后,在日志信息中发现了搜索
在这里插入图片描述
打开burp去测试注入
发现是json数据
在这里插入图片描述
这里我频繁测试,发现了一个很离谱的,在user_name中,查admin和test是406,而2233则是正常,大胆猜测在这个参数这里,可能后端sql语句只能让查询数字,那我们是不是可以判断是数字型注入呢。。。。?
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
而且还有一个点要注意在正常页面中,不抓包的情况下,只允许查询用户id和动作,没提供用户名查询,我们便从用户名这尝试注入。
在这里插入图片描述
查看当前数据库名
在这里插入图片描述
我第一步习惯看库,还有就是顺便看一下禁没禁用括号,函数之类的
接下来看表
在这里插入图片描述
太长了给大家复制出来看

"user_name":"-1/**/union/**/select/**/1,2,group_concat(table_name),4,5/**/from/**/information_schema.tables/**/where/**/table_schema=database()",

查字段
在这里插入图片描述
测了几遍发现这里’是不能用的,使用十六进制来绕过
在这里插入图片描述

"-1/**/union/**/select/**/1,2,group_concat(column_name),4,5/**/from/**/information_schema.columns/**/where/**/table_name=0x666c6167/**/and/**/table_schema=database()"

查id字段的值
在这里插入图片描述

"1/**/union/**/select/**/1,2,group_concat(id),4,5/**/from/**/flag"
flag是3d5dd579-0678ef93-18b70cae-cabc5d51

如有错误希望大家可以指出,谢谢

参考资料
https://blog.csdn.net/qq_28205153/article/details/55798628
以及,感谢F_D割割的指导
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值