buu刷题日记
[NewStarCTF 公开赛赛道]UnserializeOne123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990<?php error_reporting(0); highlight_file(__FILE__); \#Something useful for you : https://zhuanlan.zhihu.com/p/377676274 class Start{ public $name; protected $func; public function __destruct() { echo "Welcome to NewStarCTF, ".$this->name; ...
ssti模板注入漏洞
SSTI(模板注入)漏洞前置知识模板引擎模板引擎是在 Web 开发中,为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,模板引擎会将模板文件和数据通过引擎整合生成最终的HTML代码并用于展示。模板引擎的底层逻辑就是进行字符串拼接。模板引擎利用正则表达式识别模板占位符,并用数据替换其中的占位符。 SSTISSTI(Server-Side Template Injection)服务端模板注入主要是 Python 的一些框架,如 jinja2、mako、tornado、django,PHP 框架 smarty、twig,Java 框架 jade、velocity,rust 等框架使用渲染函数时,由于代码不规范或信任了用户输入而导致了服务端模板注入,模板渲染其实并没有漏洞,主要是程序员对代码不规范不严谨造成了模板注入漏洞,造成模板可控。具体模板如下 python前置知识python模板的ssti需要的部分知识点: __class__:查看对象所属的类 __mro__:查看继承关系和调用顺序,返回一个元组 __base__:返回单一基类 __bases__...
upload知识点
upload学习知识点upload学习过程中涉及的知识点 一、配置文件_Preview Image 对配置文件的修改 upload相关配置文件 .htaccess文件的优先级高所以其危险性更大 user.ini文件生效前提是目录中存在php文件可以对其进行覆盖 二、额外数据流在Windows操作系统中,当你看到文件名后跟着”::D A T A “ 时,它表示文件的一个附加数据流 ( A l t e r n a t e D a t a S t r e a m , A D S ) 。数据流是 − − 种用于在文件内部存储额外数据的机制在普通情况下,我们使用的文件只有一个默认的数据流,可以通过文件名访问。但是 W i n d o w s N T 文件系统 ( N T F S ) 支持在文件内部创建额外的数据流,以存储其他信息。这些额外的数据流可以通过在文件名后面添加 “ … DATA”时,它表示文件的一个附加数据流(Alternate DataStream,ADS)。数据流是–种用于在文件内部存储额外数据的机制 在普通情况下,我们使用的文件只有一个默认的数据流,可以通...
php反序列化
反序列化docker 靶场安装sudo docker pull mcc0624/ser:1.8 docker run -p 8002:80 -d mcc0624/ser:1.8 php面向对象 类的定义 php反序列化中的符号都有其特定的标识符 什么是反序列化(unserialize)将字符串转换为状态信息 在定义变量前面的符号为序列符 每个序列符的作用不一样 序列化 public:属性被序列化的时候属性值会变成 属性名 protected:属性被序列化的时候属性值会变成 \x00*\x00属性名 private:属性被序列化的时候属性值会变成 \x00类名\x00属性名 反序列化new函数可以用来将变量实例化 PHP内的几个特殊魔术方法 __construct() 类的构造函数,在类实例化对象时自动调用构造函数 __destruct() 类的析构函数,在对象销毁之前自动调用析构函数 __sleep() 在对象被序列化(使用 serialize() 函数)之前自动调用,可以在此方法中指定需要被序列化的属性,返回一个包含对象中所有应被序列化的变量...
sql注入
原理sql注入发生原理: 用户对传入的参数未进行严格过滤处理,导致构造形成sql语句,直接输入数据库执行,从而获取和修改数据库 注入类型常见的注入方式有:字符型注入、布尔型注入、报错注入、文件读写注入、布尔盲注、时间盲注、堆叠注入、二次注入…… 基本操作1.判断显示位 1?id=SELECT first name, last_name FROM users WHERE user_id = '1' union select 1,2,3#; 2.爆数据库的名字 1?id = '1' union select 1,user(),database()--+‘; 3.爆数据库中的表 1?id = '-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+'; 4.爆表中的字段 1?id= '-1'union select 1,2,gro...









