前言:继续总结,学习更多关于web知识和练习编写脚本的能力。
GetFlag
一个登陆框加上验证码,不过有一点不同的是substr(md5(captcha), 0, 6)=e7e24a
,截取MD5加密后验证码的前6位,而且需要等于后面的值(后面的值是变化的)
那就属于MD5碰撞了,就模仿大师傅写一个python脚本跑一下
import requests
//requests库是一个常用的用于http请求的模块
import base64
import sys
//该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数
import hashlib
//主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
def getMd5(index):
for i in range(100000,100000000):
x = i
md5 = hashlib.md5(str(x).encode("utf8")).hexdigest()
if md5[0:6] == index:
return x;
print(getMd5("e7e24a"))
得出验证码
观察源码,没有发现什么线索,尝试一下SQL注入
' or 1=1#
把文件下载下来
其中两个txt文件没有什么用处,有用的就是那一个php文件
flag is in the web root dir
这句话提示flag
在web
根目录,抓包看看
发现并没有什么线索,点击超链接再抓包试试,发现GET
处是文件id查询的形式,所以这里应该就可以从这里查看到根目录文件
改成flag.php没用,但改成./flag.php
有反应
以为这样就可以得出flag,结果是我想多了,不管试多少个./././
都无用,所以不能用目录缩写来跳过,只能输入正确的根目录
利用CONNECT
请求方式,查看是什么服务器
Linux服务器,那就用常用的web根目录试下
/v