哔哩哔哩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割割的指导