1.python脚本实现 模拟登陆请求
import requests
# 目标网站的登录URL
login_url = "http://......."
# 构建POST请求所需的表单数据
payload = {
'username': 'admin',
'password': 'admin'
}
# 自定义头部信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0',
'Referer': 'http://.....',
}
# 使用Session保持登录状态
with requests.Session() as session:
# 模拟发送POST请求登录并加入自定义头部信息
response = session.post(login_url, data=payload, headers=headers)
# 检查是否登录成功
if response.ok:
print("登录成功")
# 登录后访问受保护的页面
profile_url = "http://......"
profile_response = session.get(profile_url, headers=headers)
print(profile_response.text)
else:
print("登录失败")
2.python实现存活网站探测
import requests
# 从文件中读取网站列表
def read_website_list(file_path):
with open(file_path, 'r', encoding='utf-8') as file: # 指定使用 UTF-8 编码
websites = file.read().splitlines() # 去除换行符
return websites
# 检测网站是否存活
def check_website_status(url):
try:
# 发送 GET 请求检测网站状态
response = requests.get(url, timeout=5)
if response.status_code == 200:
print(f"{url} 是存活的")
else:
print(f"{url} 返回状态码: {response.status_code}")
except requests.ConnectionError:
print(f"{url} 连接失败")
except requests.Timeout:
print(f"{url} 请求超时")
# 从文件读取网站列表并进行探测
def detect_alive_websites(file_path):
websites = read_website_list(file_path)
for website in websites:
check_website_status(website)
# 指定存储网站的文本文件路径
file_path = 'weblist.txt'
# 进行网站存活探测
detect_alive_websites(file_path)
3.ctfshow信息泄露
1. 源码泄露
进入题目发现页面中无太多信息
尝试查看页面元素,成功找到flage
2.
进入页面尝试查看源码,发现无法查看
因为之前遇到过js禁用查看页面源码,尝试关闭浏览器js插件
关闭后尝试即可查看页面源码
3.
查看页面源码未发现可用信息
根据提示查看网络包 发现flag信息
4. robots后台泄露
reboots为网站爬虫规范,尝试查看robots.txt文件
查看页面中返回的地址/flagishere.txt 得到flage
5. phps源码泄露
根据提示尝试拼接url进行尝试,尝试index.php后无变化,尝试index.phps返回下载文件,打开发现flage
6. 源码压缩包泄露
发现网站请求为gzip,搜索拼接
拼接完成后下载到www.zip压缩文件
打开fl000g提示flage在此处,尝试拼接这个地址
7.版本控制泄露源码
查询版本控制相关内容,发现一般为.svn和.git,尝试拼接
拼接.svn发现无变化
再尝试拼接.git发现flage
8. 版本控制泄露源码2
上一题尝试拼接过.git,此次尝试.svn发现flage
9.
搜索swp文件泄露相关内容,发现可拼接后缀为index.php.swp .swo .swn
尝试拼接 拼接swp发现下载flage
10. cookie泄露
查看cookie直接发现flage