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

目录

BurpSuite用户名密码爆破

滑稽

计算器

Dummy Game

头等舱

alert

GET

POST

HTTP

Have fun

矛盾

网站被黑了

EasySQL

WarmUp

secret file

STTI_1(模板注入)


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}

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第1章 注入类 课时1:SQL注入原理与利用 19'40 课时2:SQL注入宽字节原理与利用42'08 课时3:SQL Union注入原理与利用01'01'54 课时4:SQL注入布尔注入50'02 课时5:报错注入原理与利用29'27 课时6:CTF SQL基于约束注入原理与利用12'22 课时7:SQL注入基于时间注入的原理与利用50'13 课时8:SQL基于时间盲注的Python自动化解题22'45 课时9:Sqlmap自动化注入工具介绍23'47 课时10:Sqlmap自动化注入实验 - POST注入13'34 课时11:SQL注入常用基础Trick18'15 第2章 代码执行与命令执行 课时1:代码执行介绍49'32 课时2:命令执行介绍20'14 课时3:命令执行分类20'12 课时4:命令执行技巧24'30 课时5:长度限制的命令执行25'46 课时6:无数字和字母命令执行10'27 第3章 文件上传与文件包含 课时1:文件上传漏洞原理与简单实验17'10 课时2:文件上传利用 - javascript客户端检查14'16 课时3:文件上传利用 - MIME类型检查10'50 课时4:文件上传利用 - 黑名单检查11'46 课时5:白名单检查13'09 课时6:Magic Header检查13'04 课时7:竞争上传21'10 课时8:简单利用15'47 课时9:文件包含介绍 - 伪协议zip和phar利用17'56 课时10:文件包含介绍-伪协议phpfilter利用04'54 课时11:日志文件利用07'58 课时12:日志文件利用session会话利用17'43 第4章 SSRF 课时1:SSRF介绍与简单利用19'14 课时2:SSRF限制绕过策略13'07 课时3:SSRF中可以使用的协议分析17'44 课时4:Linux基础知识21'37 课时5:Redis未授权访问漏洞利用与防御16'17 课时6:Redis未授权添加ssh密钥f17'04 第5章 第五章 课时1:XXE-XML基础必备24'47 课时2:XXEXML盲注利用技巧18'22 第6章 第六章 课时1:序列化和反序列化介绍15'49 课时2:PHP反序列化识别与利用14'22 课时3:PHP序列化特殊点介绍15'28 课时4:魔术方法20'35 课时5:序列化漏洞案例 - 任意命令执行05'53 课时6:Phar反序列化10'38 第7章 第7章 Python基础 课时1:7.1-Requests模块安装与介绍15'28 课时2:7.2-Python requests库 使用18'26 课时3:7.3-XSS自动化检测13'23 课时4:7.4-Python-SQL自动化检测07'59 课时5:7.5-Python 源码泄露自动化挖掘23'38 第8章 第8章 SSTI模板注入 课时1:8.1-Flask框架介绍与基础39'14 课时2:8.2-RCE 文件读写23'37 课时3:8.3-SSTI Trick技巧27'13
CTF(Capture The Flag)是一种网络安全竞赛,其中的Web领域涉及到了网页应用程序的漏洞挖掘和利用。下面是CTF Web思维导图的简要解释: CTF Web思维导图主要分为三个方面:Web漏洞类型、漏洞利用技术和解题方法。 Web漏洞类型包括:注入漏洞(如SQL注入、命令注入)、跨站脚本漏洞(XSS)、跨站请求伪造漏洞(CSRF)、文件上传漏洞、路径遍历漏洞等。这些漏洞常见于Web应用程序的开发不规范或配置不当,攻击者可以通过利用这些漏洞来获取无授权的访问或者控制目标系统。 漏洞利用技术主要包括:代码注入(如SQL注入、远程命令执行)、会话劫持与干扰(如会话劫持、会话劫持预防、会话干扰攻击)、文件包含与遍历、信息泄露利用(如敏感信息泄露、漏洞利用)、中间人攻击、点击劫持等。这些技术是攻击者在发现漏洞后利用漏洞实施攻击的具体方法。 解题方法主要包括:寻找目标站点、分析目标站点、漏洞检测与利用、数据包截获与分析、Webshell的利用与部署、绕过访问控制(如绕过IP限制、用户认证绕过)、漏洞修复与防御等。这些方法是CTF比赛中参赛者通过解题来获取Flag的具体步骤。 综上所述,CTF Web思维导图涵盖了Web漏洞类型、漏洞利用技术和解题方法。掌握这些知识和技能能够帮助参赛者更好地分析和利用Web漏洞,从而在CTF比赛中取得优异的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值