本文转载:https://xiaochuhe.blog.csdn.net/article/details/122309766
1.直接点进去找很容易找到flag,为锻炼写脚本能力,故用python跑跑看看,点进去下面页面
2.多点点会发现,一共有4个文件夹分为为1,2,3,4,每个文件夹里面还有4个人文件夹1,2,3,4,其中有一个文件夹里面有flag文件,开始编写脚本之前先学习下面代码的含义:
import requests
url = "http://www.baidu.com"
r = requests.get(url)
print (r,r.text)
print (len(r.text))
url1 = "https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E7%94%B7%E5%AD%90%E6%B1%82%E9%9A%94%E7%A6%BB%E6%9C%AA%E6%9E%9C6%E5%8F%A3%E4%BA%BA%E7%A1%AE%E8%AF%8A+%E5%B7%B2%E8%8E%B7%E6%95%91%E6%B2%BB&rsv_idx=2&rsv_dl=fyb_n_homepage&sa=fyb_n_homepage&hisfilter=1"
r1 = requests.get(url1)
print (len(r1.text))
输出结果: 输出响应包,响应页面代码,响应页面代码长度,并且我们可以看出同意个网站下不同目录响应的长度肯定是不相同的,据此开始编写脚本。
3.先开始尝试
import requests
url1 = "http://challenge-75fbfe083536c788.sandbox.ctfhub.com:10800/flag_in_here/"
url2 = "http://challenge-75fbfe083536c788.sandbox.ctfhub.com:10800/flag_in_here/1/"
for i in range(1,5):
for j in range(1,5):
url_new = url1+f'{i}/{j}/'
print (url_new)
输出结果:可以看出现在已经跑出所有的目录了,下面开始筛选哪一个里面有flag文本
4.继续编写代码
import requests
url1 = "http://challenge-75fbfe083536c788.sandbox.ctfhub.com:10800/flag_in_here/"
url2 = "http://challenge-75fbfe083536c788.sandbox.ctfhub.com:10800/flag_in_here/1/1/" #普通页面下没有flag的页面
r1 = requests.get(url2)
length1 = len(r1.text) #没有flag页面的响应包文本长度
for i in range(1,5):
for j in range(1,5):
url_new = url1+f'{i}/{j}/'
r2 = requests.get(url_new)
length2 = len(r2.text) #跑出来的页面响应包文本长度
if(length1 != length2): #如果普通页面下没有flag的页面和跑出来的页面响应包文本长度不相等代表那个页面肯定有东西,相同的话就都是空的
print (url_new)
输出结果:
5.跑出直接访问页面,得到flag值