About Hacker101 CTF

2018 Hacker101 CTF,是由HackerOne举办的,直接使用HackerOne登录即可。传送门

【2019.11.12】

A little something to get you started

难度和flag分值:Trivial (1 / flag)

WriteUp:

打开链接查看源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
<!doctype html>
<html>
<head>
<style>
body {
background-image: url("background.png");
}
</style>
</head>
<body>
<p>Welcome to level 0. Enjoy your stay.</p>
</body>
</html>

发现background.png,添加到链接后访问

得到flag:^FLAG^05c6d80abb5641043be41332b6868d4e51e5dc899486dda3a44d12c9c2cc5d47$FLAG$`

Micro-CMS v1

难度和flag分值:Easy (2 / flag)

WriteUp:

本题目有四个flag。下面分别寻找:

打开是一个CMS系统,可以创建Markdown类型的页面文件。

flag1:点击已经存在的几个页面链接发现是以数字分隔的,可能存在注入,尝试直接在edit链接后面加引号,http://34.74.105.127/902d26090b/page/edit/1'

得到flag1:^FLAG^11e4ae63c7deb54c628acac7d6082bdf4573bbae3c81e5fccc035d1709b58c98$FLAG$

flag2:在Home路径下可以看到每篇文章的题目,在编辑页面构造XSS文件标题尝试在Home页面是否存在XSS。

图 1

创建文章后回到首页

弹出flag2:^FLAG^c03990c099606a0966e653368894f23422ac22683aaedd2f1cf05fe3e51ebc4b$FLAG$

flag3:在文章内容页面构造XSS,发现标签被过滤了。

图 2

构造<img>标签如下:

图 3

创建文章后访问,弹窗,存在XSS,查看源码

图 4

发现flag3:FLAG^06969e5fad7c4fdbb1373473bca3feaae5cb35192ad076b8c077c8d98ffa6c79$FLAG$

flag4:观察创建的文章ID是从11开始的,已存在的两篇文章ID分别是1和2,那中间的去哪里了?在浏览页面的链接后面一次追加之间的数字都是403,尝试在编辑页面的链接中追加中间的数字

图 5

得到flag4:^FLAG^73f6510533bfe045644c9d7d103f35017ac54fdf8b5517640bf1c884987f0993$FLAG$

Micro-CMS v2

难度和flag分值:Moderate (3 / flag)

WriteUp:

本题目有3个flag。下面分别寻找:

flag1:有登录,尝试是否存在注入。构造登录名为admin ' union select '123,密码为123登录成功。查看private page页面

得到flag1:^FLAG^d2dbfda38f203a282859c13a3da50ee42812417984251fe376dcace56a02e57a$FLAG$

flag2:和CMS v1有点类似,查看hint,发现要采用post方式请求中间ID文章的edit页面

图 6

得到flag2:^FLAG^18caf2140521df8dfe1c3cf033d74080650e7a3be1f0d3715ea28a6a9de9960d$FLAG$

flag3:在登录页面随便输入用户名密码,提示Unknown user

【待解决】

Postbook

难度和flag分值:Easy (4 / flag)

WriteUp:

本题目有7个flag。下面分别寻找:

flag1:注册一个用户,登录后发现已经存在两篇文章,但是id分别为1和3,访问id为2的文章

图 7

得到flag1:^FLAG^49caa7bbda6269f5b031ef20c3c2c929da30256de5e0aa3ae669f78305db9921$FLAG$

flag2:注册登录后可以发现,在首页只有注册后创建的文章会显示edit按钮,已经存在的并没有。这里通过在编辑链接里通过修改id,直接获取edit权利。尝试在内容中构造XSS并保存。

图 8

得到flag2:^FLAG^a6472d14d9769cef13c37c9a857a6042aa11af11fcc267442b5716a7c5b7b35d$FLAG$

flag3:好吧。。。找了半天,发现在用户名显示的地方是存在XSS的,但是构造好还有XSS的用户名有弹窗但是没有flag。。发现已存在用户除了admin外还有一个user用户,登出后尝试登录user用户,弱密码password,谁料真的登上了。。。

图 9

得到flag3:^FLAG^e61c59b72e740c455cf50af04d9d05d0984909e2262afd94d95346aea4491b61$FLAG$

flag4:直接使用burpsuite爆破id字段发现在id=945时存在flag。

得到flag4:^FLAG^0cae4e96a31362d8c9c11daf0387dec9bf44b2e71b8ef9a69409e468f8d56ffe$FLAG$

flag5:尝试删除文章。发现删除链接id后面跟的是文章id的md5值,这里尝试越权删除其他用户的文章。

图 10

得到flag5:^FLAG^a5d21a4be4c9ed16a98c3d459f75b0984e679dc96eec3ad7c8cbdacc0137bae7$FLAG$

flag6:有了删、改、查,感觉下面就是增了。尝试越权增加一篇文章。先新建一个文章,然后删除并且抓包,发现参数除了title和body外还有一个user_id,这个user_id随着注册人数增加依次增加。这里直接把user_id设置成1之后发送。

图 11

得到flag6:^FLAG^3fb398a0f2e9af561c5a12802c8956807d547d23b8d9c5903b114d0c09e4b13d$FLAG$

flag7:在上面我们删除操作的时候直接使用了id的MD5值,抓包的时候发现用户的Cookie也是一个id=xxxx的哈希值,直接解md5可以发现其直接对应的是user_id,我们登录一个普通用户(我们自己注册的),然后将cookie设置为user_id为2的cookie来冒充用户,发现得到了一个flag和flag3一样,即user用户的flag。所以这里直接想到设置为admin用户的cookie,即user_id为1的cookie,md5(1)的值。刷新页面。

得到flag7:^FLAG^923ef7586685ba373188fb9000dc76c058e387f614f3a4d8381d63d5a52ba24f$FLAG$

7个flag总算照完了。。。

Petshop Pro

难度和flag分值:Easy (3 / flag)

WriteUp:

本题目有3个flag。下面分别寻找:

flag1:随便点了一下,发现checkout结算这里有个将单价算一下的操作,这里直接抓包修改购物车cart中相应商品的price0

图 12

得到flag1:^FLAG^b75dec926d3e2c5ee2a2987d33f1cd510c63094bddda9c86797cb5d3e58dd785$FLAG$

【今日成功拿到52points,顺利拿到两个private program的invitation的优先机会~】


声明:
文章标题:Hacker101 CTF WriteUp
文章作者:RookieHacker
文章链接:http://blog.rookiehacker.org/2019/11/12/hacker101ctf/
文章版权属本博主所有,有问题或者建议欢迎在下方评论。欢迎转载、引用,但请标明作者和原文地址,谢谢。


喜欢,就支持我一下吧~