CTF练习平台——web(1)

1、签到题


CTF练习平台——web(1)_第1张图片

直接加群就可以获取flag

2、Web2


CTF练习平台——web(1)_第2张图片
点开链接铺天盖地的全是滑稽

尝试抓包失败


CTF练习平台——web(1)_第3张图片

查看元素就发现了flag


CTF练习平台——web(1)_第4张图片

3、文件上传测试

CTF练习平台——web(1)_第5张图片

判断为上传绕过

尝试上传一个php

CTF练习平台——web(1)_第6张图片

提示非图片文件,所以上传一个图片文件,再抓包试试


CTF练习平台——web(1)_第7张图片


CTF练习平台——web(1)_第8张图片
得到一个HTTP数据包

将HTTP数据包发到Repeater模式

将文件名的后缀改为php


CTF练习平台——web(1)_第9张图片


CTF练习平台——web(1)_第10张图片

发送数据包后返回flag


CTF练习平台——web(1)_第11张图片

4、计算题

CTF练习平台——web(1)_第12张图片

尝试输入40发现只能输入一位,页面设置了长度限制

改一下html的代码,再输入40即得到flag


CTF练习平台——web(1)_第13张图片

5、web基础$_GET

CTF练习平台——web(1)_第14张图片

题目已经给出源代码,直接构建payload


CTF练习平台——web(1)_第15张图片

6、web基础$_POST

CTF练习平台——web(1)_第16张图片


CTF练习平台——web(1)_第17张图片

7、矛盾

CTF练习平台——web(1)_第18张图片

根据源代码,要获得flag的条件是num变量不能是数字,但是要等于1

is_numeric()函数支持普通数字型字符串、科学记数法型字符串、部分支持十六进制0x型字符串,但是int强制类型转换不能正确转换类型有十六进制型字符串、科学计数法型字符串(部分)

利用PHP的弱条件漏洞:

==                 在进行比较的时候,会先将字符串类型转换为相同,再比较大小(不考虑类型)

===                在进行比较的时候,会先判断两种字符串的类型是否相等,再比较大小

所以构造payload

http://120.24.86.145:8002/get/index1.php?num=1e0.1


CTF练习平台——web(1)_第19张图片

得到flag:

flag{bugku-789-ps-ssdf}

8、web3

CTF练习平台——web(1)_第20张图片

直接查看源代码

CTF练习平台——web(1)_第21张图片

在源代码中发现一串像HTML等语言转义的序列,将转义序列放在HTML文件中


执行test.html文件


CTF练习平台——web(1)_第22张图片

得到flag:

KEY{J2sa42ahJK-HS11III}

9、sql注入

CTF练习平台——web(1)_第23张图片

是一道sql注入题,先尝试了一般的注入,失败

CTF练习平台——web(1)_第24张图片

尝试宽字节注入


CTF练习平台——web(1)_第25张图片

该题为宽字节注入


CTF练习平台——web(1)_第26张图片
id=1%df%27 order by 2%23

测出字段数为2

获得当前使用的数据库


CTF练习平台——web(1)_第27张图片
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


CTF练习平台——web(1)_第28张图片

得到flag:

KEY{54f3320dc261f313ba712eb3f13a1f6d}

你可能感兴趣的:(CTF练习平台——web(1))