0


CTF练习——WEB安全(BurpSuite为主)

BurpSuite用户名密码爆破

输入错误的用户名密码组合:xiaoming 19971208,开启拦截:

发送到intruder,配置cluster bomb:

使用safe6,如下填写信息后,单击发车:

得到可能的密码组合safe6pass.txt文件:

首先配置攻击用户名的payload,用add添加可能的用户名:

然后配置攻击密码的payload,在intruder-payload-payload options中加载获取的密码组合文件:

得到如下的simple list:

配置结束后,单击Start attack,发现有错误提示:

发现是代码处PHPSESSID也被当做了一个position

删除其两侧的$$,得到:

再次单击Start attack,开始爆破,爆破过程较慢:

在尝试到第150左右的时候,发现length发生变化,由1746变为了1758,而后变为1770,猜测第151项为正确的用户名密码组合:

将第151项中的组合,xiaoming xm1208输入:

登陆成功,即爆破成功:

滑稽

启动场景后,打开链接,检查元素:

在注释中看到flag。

flag{d0b386e19e85e75d75d992bcbf218c6b}

计算器

发现最大长度为1,写不了三位数。

将最大长度改成3,输入正确计算结果:

得到flag:

Dummy Game

用Burpsuite进行抓包

打开源代码,发现flag is here,但是没有任何东西:

再forward几下,在某一时刻连着出现了两个Title是Dummy game的:

查看response:

得到flag:

flag{ec39ee443cad3ec7938ac5e5f7e64b70}

头等舱

找到该地址:

点开,查看Response:

发现Flag出现在响应头中,得到flag:flag{dd8c7ab310d2fb7811160a5e44a2833e}

alert

发现有类似ASCII码

flag{40e7e65ec38b89ce46c6352276be10bf}

对照得出:flag{40e7e65ec38b89ce46c6352276be10bf}

GET

得到如下网页:

这段代码的意思是:需要传递一个参数,这个参数名叫what,而当what的值为flag这个字符串时,就可以得到真正的flag。

于是进行url传参:

记得关闭intercept,若输入/get/会提示:

得到flag:

flag{e12c42435b7cb7718c08408121334826}

POST

拦截之后,将raw代码send to repeater,右键选择change request method,在最后输入what=flag,得到:

得到flag:flag{4d14074e3fc065dfe6a2df50c594e72b}。

HTTP

Burpsuite拦截,拦截到的信息发送到repeater,send,查看源代码,发现一行secret:

在Get后加上/Secret.php/

Send后,出现新的源码界面,浏览后找到新的一句话:

继续,添加这个网址到referer:

找到另一句话,这句话提示我们将host改为Sycllover:

按要求修改:

得到如下信息,要求我们只能在本地访问:

于是按要求修改HTTP header:

得到flag:

flag{578bccfd-1a4d-4ae3-9a8f-39a4c3ec7e1d}。

Have fun

界面是一只猫猫!

没什么有用信息,按照套路拦截,send to repeater, send,观察源代码:

观察到:如果cat的值是dog,就会发生一些美好的事情,那就进行url传参。

确实十分美妙:

得到flag:flag{4a6849df-a8a6-4840-b089-c2c790ed44c6}

矛盾

进入网址后看到这样一段代码,很明显就是只有num=0的时候,才会有下面的响应,但是num=1的时候,才会反馈flag,所以才是矛盾。

那么num就可以不用等于1,因为是弱判断,只要等于1(…..)后面什么都行,如:

即可得到flag:

flag{16afc5b9893a4a3b6d04196bc56ac7b8}。

网站被黑了

打开之后确实是黑的:

通过御剑扫描后台:

打开一个这样的网页:

查看源代码,没有特别之处,不知道密码,只好爆破:

Change request method, send to intruder,载入字典:

确定position:

Start attack

很慢….

得到密码:hack

输入密码后:

得到flag:

EasySQL

打开网址,是一个要登陆的界面:

判断存在sql注入:

使用’or 1=1 #为用户名,什么做密码都可以

其原理为,认证语句通常为:

select * from table_name where username='xxx' and password ='xxx'

而当使用如上用户名时,会变为:

select * from table_name where username='admin' or 1=1#' and password ='xxx'

#及以后的部分都已被注释,即密码为多少没有太大意义。

得到flag:flag{c9fab876-3289-4ed1-9115-3abe8a4b0f7f}

WarmUp

由于看到代码审计,于是找出源代码:

找到一个被注释掉的source.php文件:

打开该文件,进行代码阅读:

如果上述三个条件都能满足,则可以进行include $_REQUEST[‘file’]的操作。

发现可能还有一个隐藏文件hint.php,访问该文件:

得到这样一句话:

也就是需要想办法绕过,来获得在ffffllllaaaagggg中的flag。

又发现,如果page在白名单中,就会返回true,如果page为空或不为字符串,就会返回false。此处可以利用先进行url解码再截取,用两个?(%253)来绕过if校验。

最终得到了flag:flag{bbaa4ab1-8ea3-43bf-ab86-e9be801da8f1}

secret file

首先查看源代码,发现有一个隐藏文件Archive_room.php:

打开它:

点击secret发现是假的:

对点击secret时进行抓包,查看源代码,发现其中有secr3t.php:

打开:

strstr是扫描首次出现这个字符串的位置,strisstr就是strstr大小写不区分:

即需要传递一串file参数过去,但是这些参数不能含有../、tp、input、data,包括这些的大小写。

同时,题目提示flag在flag.php里面:

查看源码,发现没有任何有用信息,因此尝试使用php://filter获取源码。

在secr3t.php的url后面加上,可得:

太长了,不贴了,用BASE64解码:

得到flag是:flag{0574f4d1-b68f-49d8-bbf9-7f44e750b8f4},秘密是他想要一个女朋友。

STTI_1(模板注入)

一打开就告诉:需要上传一个叫flag的参数:

查看源码:

看到一个叫flask的名词,查询得到,是一种模板注入,搜索可得其模板:

/?flag={{config.SECRET_KEY}}

得到flag:flag{27b7e818b1c19e185663221086522c81}

标签: web安全 安全

本文转载自: https://blog.csdn.net/zytjulie/article/details/126467070
版权归原作者 淡蓝色的愿望 所有, 如有侵权,请联系我们删除。

“CTF练习——WEB安全(BurpSuite为主)”的评论:

还没有评论