__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __serialize(), __unserialize(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为魔术方法(Magi
...
2021.11.04
file://
主要是用于读取文件(访问文件)
示例:?file=file:///etc/passwd
注意!这里的路径可以是绝对路径/相对路径/网络路径
php://
主要作用是访问输入输出的流
php://filter最常见的伪协议之一主要用来读取源代码,姿势有很多。
最常见的就是base64大法
例如:file=php://filter/read=convert.base64-encod
...
2021.11.03
首先分析一下代码。
首先是get传出三个参数,然后有个isset($text)&&(file_get_contents($text,"r")==="xxx")
这里就要求传入text且text是个文件且内容为xxxx。先具体了解一下这个函数:
file_get_contents() 函数把整个文件读入一个字符串中。
和 file()一样,不同的是 file_get_contents() 把文件读入一个字符串。
fil
...
2021.11.03
upload打开题目环境看到如下页面
应该是一个文件上传题目
这种肯定先burp一波,当然在burp之前我先尝试了一下上传真的图片,然而提示我NOT IMAGE,当时就很迷,后面大概知道是题目的原因(唉,题目出不好误导人啊
上传图片无果后尝试上传一个txt文件,提示不是图片,抓包,小小操作一下。
被他发现了
这里又尝试传个php马上去,不给传一番尝试后发现文件后缀也很多被ban,但是phtml似乎是没有ban,然后还有个比较坑的点就是文件里不能包含<?,这就比较烦,一
...
2021.11.03
Flask SSTI复现
基于jinja2模板的注入漏洞
漏洞成因from flask import Flask, request
from jinja2 import Template
app = Flask(__name__)
@app.route("/")
def index():
name = request.args.get('name', 'guest')
t = Template(&qu
...
2021.11.03
http://8b484b77-6ae8-4e5f-b74a-289487f0f1fe.node4.buuoj.cn:81/check.php?username=admin%27+or+1%3D1%23&password=124
拿到手先尝试一下万能密码,爆出来一个哈希值,没啥用,开始老老实实注入。
到4开始报错,说明有三个回显字段。
爆库名。
爆表名。
爆字段。
人菜小错误多,这里的表名我一开始一直没加引号,苦思冥想原来是引号的锅。在此记录以防再犯。
...
2021.11.03
把博客换成了hexo
由于之前的wp写起来实在是过于麻烦,博客园之类的又太丑了,想来想去果然还是hexo最适合我。遂部署了一个在cos上,目前看来效果不错。
博客用的主题是fluid,算是比较简约干净的了,今后暂且也没有加上一些花里胡哨的功能的打算,就这样挺好的。
就用这个博客来安心记一些ctf中的新姿势和一些小日记吧。
...
2021.11.03