Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-WEB篇

DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-WEB篇

作者头像
安恒网络空间安全讲武堂
发布于 2021-07-09 07:48:09
发布于 2021-07-09 07:48:09
2.6K0
举报

June GKCTF X DASCTF WEB篇

2021年6月26日,GKCTF X DASCTF应急挑战杯圆满落幕。

本次竞赛涵盖WEB、CRYPTO、MISC、PWN、REVERSE常规CTF五大类赛题。

本篇主要分享WEB方向writeup,一起来看看吧~

NO.00

WEB类榜单

排名

战队名称

单位

积分

解题数

1

杭州职业技术学院

3177

4

2

共禾

南昌大学共青学院

2118

3

3

EDI

EDI

2118

3

4

NGF

广西大学

1200

2

5

SUS

东南大学

1199

2

NO.01

ezcms

访问admin.php,可以访问到后台,后台账号密码为弱⼝令

admin 12345

可以找到模板注⼊的地⽅,但是发现存在限制。

在微信接⼝下存在⽬录穿越,步骤:

需要先创建⼀个正常的接⼝,然后再重新创建⼀个⽬录穿越接⼝,否则会报错

编辑⼀个存在路径穿越的漏洞

上传到任意图⽚

再回去编辑模板

回到前台即可getflflag

NO.02

eznode

登录的时候可以发现过滤相当的严格

常规的注⼊肯定是⽆法注⼊成功的,但是我们通过审计代码可以知道,该waf的主要功能是 利⽤for循环提取字符,再将该字符丢到⿊名单中逐字对⽐。但是在JS当中for循环遍历数组的话 就是逐步对⽐元素,在这种情况下就可以绕过⿊名单。

但是由于写了这么⼀⾏,substr函数仅允许字符串使⽤,所以如果输⼊的内容经过check 之后还是数组的话,就会报错。此时⼜需要审计代码。

我们可以得知该waf遇⻅加号的情况下,会直接将字符串左右的内容进⾏⼀个"加"运算,如 果⽤nodeJS做过开发的师傅应该知道该⽅法经常⽤于将数字,对象等转换为字符串。

到这⾥绕过的⽅法就跃然纸上了,我们可以先利⽤数组绕过,在我们的payload最后⼏段元素 当中⼜加上waf会过滤的内容,这样就会将我们输⼊的数组⼜转回字符串了。

那么是到⽹站⾥,我们需要运⾏的就是:

这样就得到了管理员token。之后就是很常规的原型链污染到EJS模块RCE了,看代码,就是在DIV模块下回读取⽤户的⽤户 名,之后将DIV的键名和值直接导⼊进去,所以我们需要先注册⼀个⽤户为__proto__,再污染 outputFunctionName进⾏RC

在adminDIV路由下下:

之后回到admin路由即可触发EJS的任意代码执⾏。

NO.03

babycat

⾮预期:

⾸先是uploadServlet中doPost没权限校验导致guest也能直接传⽂件,其次在check函数后转发 没返回,后⾯的代码依旧执⾏,造成了严重的⾮预期(出题人内心OS:呜呜呜呜)

所以只要上传jsp到web⽬录即可getshell

预期解:

babycat-revenge做了修复 ⾸先需要登陆,点击register有⼀个not allowed的烟雾弹,但是源码中写出了传参⽅式

先⽼实注册⼀个⽤户

登录后当前⽤户为guest,也会发现upload需要admin访问,downtest处可以任意⽂件下载,并 且根据web.xml可以⼀步步得到所有源码

⽂件⽬录

然后先关注怎么成为admin,看到com.web.servlet.registerServlet这⾥

接收data参数,然后正则匹配其中的

并将最后⼀个匹配强制替换为了guest,这⾥由于是json库,并且是gson进⾏解析,于是可以在 json中⾃由使⽤注释符/**/,所以payload可为

登录成为admin

然后uploadServlet那有⽩名单

注意到这⾥能上传xml⽂件,⽽在操作数据库的com.web.dao.baseDao中有使⽤了 xmldecoder来获取数据库信息

并且上传只对后缀和⽂件内容做了过滤,那么就可以考虑路径穿越写⼊恶意的xml,然后触发 xmldecoder反序列化

这⾥过了⽐较常⻅的xmldecoder需要⽤到的类

其实也不算啥waf,后来给了提示使⽤java.io.PrintWriter来写⽂件到static⽬录getshell(绝对 路径可以通过读../../../../../../../proc/self/environ得知)

PrintWriter

也可以直接⽤实体编码绕过滤 (来⾃NaN)

覆盖之后找个地⽅调⽤了getConnection,登录注册都可以 然后连上/readflflag即可

NO.04

hackme

提示nosql盲注

这⾥过滤了regex/ne/eq字符,因为是json,所以可以⽤unicode来绕过

这⾥python中写`\u0024`会被转义成`\\u0024`,所以⽤php的http发包了

得到密码42276606202db06ad1f29ab6b4a1307f,登录

info.php(出题人:这⾥我犯了个错,admin.php的跳转后⾯没die掉,不⽤登录也⾏,并且我⼿⽋多加⼀个 info.php使得有⼀个队的师傅⽤PHP_SESSION_UPLOAD_PROGRESS拿shell然后把后⾯的内⽹代理出来打了 确实厉害)

继续,可以猜测是通过php info.php执⾏的,/etc/passwd能读取⽂件 /flflag发现提示flflag在内⽹

这⾥没有ssrf的地⽅,结合提示"注意server和其配置⽂件"。那么⾸先去看server,burp抓⼀下 返回包会发现server是nginx 1.17.6(在1.17.7之前版本中的error_page 存在⾛私漏洞)

https://v0w.top/2020/12/20/HTTPsmuggling/#5-1-%EF%BC%88CVE-2019-20372%E F%BC%89Nginx-error-page-%E8%AF%B7%E6%B1%82%E8%B5%B0%E7%A7%81% E6%BC%8F%E6%B4%9E

并且有个⼩细节是访问404的路由会⾃动跳转到404.php。先继续看他的配置⽂件,这⾥可以通 过读/proc/self/environ得到当前⽬录/usr/local/nginx/html

nginx配置⽂件/usr/local/nginx/conf/nginx.conf

发现nginx反代

server_name是weblogic,尝试⾛私⼀下(这⾥⽤burp⾛私着实不太⽅便。所以我下⾯⽤的 socket)注:图为本地环境

⾛私访问/console/login/LoginForm.jsp,payload为:

得到版本为12.2.1.4.0,使⽤CVE-2020-14882,%252e%252e绕过登录,回显exp直接打, socket发包

header头⾥执⾏/readflflag即可

NO.05

CheckBOT

admin.php⻚⾯

bot点击提交的URL访问⽂件触发js,判断是否是内⽹ip,vps上构造

bot可能会遇到⽹络阻塞问题,没有回显的师傅可以尝试重启靶机

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 恒星EDU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-PWN&REVERSE篇
本次竞赛涵盖WEB、CRYPTO、MISC、PWN、REVERSE常规CTF五大类赛题。
安恒网络空间安全讲武堂
2021/07/09
1.6K0
DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-PWN&REVERSE篇
DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-MISC&CRYPTO篇
本次竞赛涵盖WEB、CRYPTO、MISC、PWN、REVERSE常规CTF五大类赛题。
安恒网络空间安全讲武堂
2021/07/09
2.2K0
DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-MISC&CRYPTO篇
2021 GKCTF X DASCTF应急挑战杯
Excel中发现有部分格子被隐藏了信息 1 ,于是联想到可能是张二维码,将其标注 1 的填充黑色
MssnHarvey
2022/08/10
4770
2021 GKCTF X DASCTF应急挑战杯
SEKAICTF 2022 Web Writeup
Bottle Poem Come and read poems in the bottle. No bruteforcing is required to solve this challenge
ek1ng
2023/01/02
1.1K0
SEKAICTF 2022 Web Writeup
鹏城杯 2022 web/misc writeup
然后我一开始是尝试了比较常规的思路,就是用php的伪协议然后base64绕过处理的,不过发现会被WAF,然后也是没找到绕WAF的方法。
ek1ng
2022/08/10
1.3K0
鹏城杯 2022 web/misc writeup
2017 LCTF WriteUp 4篇
周末刚刚结束的LCTF,我们队一共做出了4道web,一道misc还有一道问卷调查(好气啊没抢到一血换pwnhub邀请码),感谢吃饭去大佬带飞~ 前言 对本渣渣而言,本次比赛质量还是不错的,我们队做出的四道web就涉及到了CBC字节翻转攻击、PaddingOracle攻击、sprintf格式化注入、sql报错注出库名表名、join注入出列名、orderby无表名注入数据、SSRF绕过、条件竞争、7个字符内getshell等知识,收获颇丰。下面是4道web的题目和WriteUp: Simple blog “他
安恒网络空间安全讲武堂
2018/02/06
1.4K0
2017 LCTF WriteUp 4篇
Hackme-Web-Writeup
hide and seek Can you see me? I’m so close to you but you can’t see me. 这题查看源码即可。 guestbook This
wywwzjj
2023/05/09
4500
Hackme-Web-Writeup
NJCTF Web部分writeup
又到了一年一度的比赛季,这次打了打赛宁自己办的NJCTF,这里稍微整理下Web部分的wp,虽然不知道题目是谁出的,但是我觉得大部分题目还是挺蠢的…看的人从中汲取自己想要的知识就好。
LoRexxar
2023/02/21
3150
NJCTF Web部分writeup
DASCTF 2022 7月赋能赛 writeup
目前水平确实不足,下午看了几个小时的题目只出了一道web签到题,感觉这DAS的比赛纯粹为了CTF而出题,就像Ez to getflag这个题目,作为一个用户来说上传了一个1.png然后输入1.png查询查不到的话,这应该很难认为是个能用的web服务,纯ctf技巧题吧,比赛时候也做了非常久。
ek1ng
2022/08/10
7611
DASCTF 2022 7月赋能赛 writeup
DASCTF May X BJDCTF 3rd Write Up
然后随便上传几次,会发现上传以后,有你上传文件的路径以及这个文件。然后如果这个文件存在,会把这个文件的内容base64编码以后以图片的方式包含进来,所以我们使他上传的文件为../../../../../flag,会给我们一个Set-cookie,然后写到请求报文里,得到flag 经过base64加密后的内容:
L1near
2022/11/11
6110
DASCTF May X BJDCTF 3rd Write Up
HGAME-Week4-Web writeup
我们发现网站后台将传入的 <script> 替换成Happy。但是前边和后边的数据并没有被过滤,但是后边的会被当成前边标签的属性,因此尝试修改下前边的数据。
安恒网络空间安全讲武堂
2019/09/29
1.5K0
HGAME-Week4-Web writeup
Code Breaking 挑战赛 Writeup
@phith0n 在代码审计小密圈二周年的时候发起了Code-Breaking Puzzles挑战赛(https://code-breaking.com/),其中包含了php、java、js、python各种硬核的代码审计技巧。在研究复现the js的过程中,我花费了大量的精力,也逐渐找到代码审计的一些技巧,这里主要分享了5道ez题目和1道hard的the js这道题目的writeup,希望阅读本文的你可以从题目中学习到属于代码审计的思考逻辑和技巧。
Seebug漏洞平台
2018/12/25
7410
Code Breaking 挑战赛 Writeup
网鼎杯 第四场 部分WriteUp
http://2e8c0fad02d147a6b3f23624556a2fe49a4b7d2b64484f3c.game.ichunqiu.com//.git/
ChaMd5安全团队
2018/09/29
8880
网鼎杯 第四场 部分WriteUp
DASCTF|2022DASCTF May出题人挑战赛官方Write
6.但是如果上传常规文件无法被解析,说明上述文件列表为白名单,这里直接上传users.go文件
安恒网络空间安全讲武堂
2022/08/31
1.9K0
DASCTF X SU 2022 writeup
这题是当时死活打不通然后赛后补题做出来了,补题过程中遇到了一些有趣的小问题,首先先看一下题目,题目是个非常基础的php反序列化题目,直接能够让用户操控反序列化的参数,找一条POP链完成利用就可以啦,下面是题目给出的源代码。
ek1ng
2022/08/10
3840
DASCTF X SU 2022 writeup
BUUCTF web writeup
右键查看源代码 发现 <!--source.php-->访问source.php发现源码 题目考察代码审计
用户2700375
2022/06/09
1.2K0
BUUCTF web writeup
钓鱼城杯2020 部分WriteUp
poc:cmd=if [ $(echo 1|cut -c1) = '1' ];then sleep 3;fi
Timeline Sec
2020/09/07
7500
钓鱼城杯2020 部分WriteUp
【原创】确定不看吗?基础篇--文件包含Bypass漏洞总结
本篇文章为星球团队成员原创文章,已申请原创权限,如其他公众号有需要转文,请联系信安旅程运营人员。
Power7089
2020/07/27
7360
【原创】确定不看吗?基础篇--文件包含Bypass漏洞总结
34c3 部分Web Writeup
34c3应该算是2017年年末的最后一个惊喜了,比赛题目虽然有非预期导致难度降了很多,但是从CTF中能学到什么才是最重要的,其中Web有3个XSS题目,思路非常有趣,这里整理了一下分享给大家。
Seebug漏洞平台
2018/03/16
1.6K7
34c3 部分Web Writeup
CTF系列——DASCTF四月春季赛Writeup
很久没正式打CTF,周末抽空参加了下安恒四月赛的DASCTF,个别题目质量还是蛮高的,这里把做出来的和赛后补充的做个记录。
Jayway
2020/05/09
5.8K1
CTF系列——DASCTF四月春季赛Writeup
相关推荐
DASCTF|June GKCTF X DASCTF应急挑战杯WriteUP-PWN&REVERSE篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档