1、签到题
直接加群就可以获取flag
2、Web2
点开链接铺天盖地的全是滑稽
尝试抓包失败
查看元素就发现了flag
3、文件上传测试
判断为上传绕过
尝试上传一个php
提示非图片文件,所以上传一个图片文件,再抓包试试
得到一个HTTP数据包
将HTTP数据包发到Repeater模式
将文件名的后缀改为php
发送数据包后返回flag
4、计算题
尝试输入40发现只能输入一位,页面设置了长度限制
改一下html的代码,再输入40即得到flag
5、web基础$_GET
题目已经给出源代码,直接构建payload
6、web基础$_POST
7、矛盾
根据源代码,要获得flag的条件是num变量不能是数字,但是要等于1
is_numeric()函数支持普通数字型字符串、科学记数法型字符串、部分支持十六进制0x型字符串,但是int强制类型转换不能正确转换类型有十六进制型字符串、科学计数法型字符串(部分)
利用PHP的弱条件漏洞:
== 在进行比较的时候,会先将字符串类型转换为相同,再比较大小(不考虑类型)
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较大小
所以构造payload
http://120.24.86.145:8002/get/index1.php?num=1e0.1
得到flag:
flag{bugku-789-ps-ssdf}
8、web3
直接查看源代码
在源代码中发现一串像HTML等语言转义的序列,将转义序列放在HTML文件中
执行test.html文件
得到flag:
KEY{J2sa42ahJK-HS11III}
9、sql注入
是一道sql注入题,先尝试了一般的注入,失败
尝试宽字节注入
该题为宽字节注入
id=1%df%27 order by 2%23
测出字段数为2
获得当前使用的数据库
id=1%df%27 union select 1,database()%23
当前使用的数据库为sql5
再根据题目的提示,表为key,字段为string,且id=1,构造payload
http://103.238.227.13:10083/?id=1%df%27 union select 1,string from sql5.key where id = 1%23
得到flag:
KEY{54f3320dc261f313ba712eb3f13a1f6d}