年度归档: 2021年

115 篇文章

Java代码审计入门篇:常见漏洞的代码审计
Java代码审计入门篇:常见漏洞的代码审计 CSRF CSRF 漏洞的工作原理是攻击者盗用了用户的身份,以用户的名义发送恶意请求。 一次完整的 CSRF 攻击需要具备以下两个条件: 用户已经登陆某站点,并且在浏览器中存储了登陆后的 Cookie 信息在不注销某站点的情况下,去访问攻击者构造的站点   实际案例 CSRF 攻击可能出现的场景很多,如更…
Java代码审计入门篇:OWASP TOP 10 2017
Java代码审计入门篇:OWASP TOP 10 2017 注入 SQL注入 JDBC拼接不当造成SQL注入 JDBC有两种方法执行SQL语句,分别为PrepareStatement和Statement。 Statement对象的SQL注入 String sql = "select * from user where id = " + req.ge…
ysoserial 安装使用调试教程
ysoserial 安装使用调试教程 介绍 项目地址:https://github.com/angelwhu/ysoserial ysoserial是一款用于生成利用不安全的Java对象反序列化的有效负载的概念验证工具。 可获取的Java反序列化payload: # java -jar ysoserial-0.0.6-SNAPSHOT-all.ja…
URLDNS利用链分析
URLDNS利用链分析 原理 HashMap在反序列化的时候会对传进来的对象进行hash计算获取hashCode,而URL类中的hashCode属性在特殊情况下(hashCode==1)的hashCode计算将触发dns查询   代码分析 ysoserial中的URLDNS.java public class URLDNS implements O…
Java反序列化漏洞-基础篇
Java反序列化漏洞-基础篇 Java原生序列化与反序列化 概述 序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。…
[HFCTF 2021 Final]easyflask
[HFCTF 2021 Final]easyflask 根据提示访问/file?file=index.js之后再访问/file?file=/app/source得到源码: #!/usr/bin/python3.6 import os import pickle from base64 import b64decode from flask impo…
[GYCTF 2020]FlaskApp
[GYCTF 2020]FlaskApp 网站开启了Debug模式,在解码页面输入不正确的编码时候就会返回报错,得到部分的源码: @app.route('/decode',methods=['POST','GET']) def decode(): if request.values.get('text') : text = request.…
[CISCN 2020 Final]batle
[CISCN 2020 Final]batle 游戏题,正常情况下是无法打败boos的,给了源码: const express = require('express'); const path = require('path'); const hbs = require('hbs'); const bodyParser = require('bod…
[SuSeC CTF 2020]web 0
[SuSeC CTF 2020]web 0 打开题目得到源码: function sha1(s) { return crypto.createHash("sha1") .update(s) .digest("hex"); } app.post("/flag", (req, res) => { const {first, second} = r…
[CTFshow]红包题第二弹
[CTFshow]红包题第二弹 查看源码提示 /?cmd 得到源码: <?php if(isset($_GET['cmd'])){ $cmd=$_GET['cmd']; highlight_file(__FILE__); if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)){ die("c…