pwn整数溢出
pwn整数溢出 整数溢出原理 具体原理 ​ 在 C 语言中,整数的基本数据类型分为短整型 (short),整型 (int),长整型 (long),这三个数据类型还分为有符号和无符号,每种数据类型都有各自的大小范围,(因为数据类型的大小范围是编译器决定的,所以之后所述都默认是 64 位下使用 gcc-5.4),当程序中的数据超过其数据类型的范围,则会…
Python模板注入
前置简介 SSTI的简单讲解 SSTI 全称Server Side Template Injection,服务器模板注入。模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这大大提升了开发效率,良好的设计也使得代码重用变得更加容易。 与此同时,它也扩展了黑客的攻击面。除了常规的 XSS 外,注入到模板中的代码还有可能引发 RC…
SQL报错注入
当注入点不回显数据库查询的数据,那么通过一般的注入手段是无法返回相关数据库的信息,但是,如果查询时输入错误SQL代码会报错,并且是通过mysql_error(),mysqli_error()等返回错误,那么就存在报错注入的可能性。 所需函数 报错注入需使用Mysql函数XML Functions: 名称 描述 ExtractValue() 使用XP…
angr-doc 7: Analyses
分析 Analyses angr的目标是使在二进制程序上执行有用的分析更加容易。到这个的最后,angr允许你以一种能够轻松地应用到任何项目的通用格式将分析代码打包。我们之后将介绍编写你自己的分析,但是思想是所有的分析出现在project.analyses(比如,project.analyses.CFGFast())下面,并且可以作为函数调用,返回分…
angr-doc 6: Execution Engines
执行引擎 Execution Engine 当你要求在angr中执行一步时,需要有什么东西实际执行这个步骤。angr使用一系列引擎(SimEngine类的子类)来模拟给定部分的代码对于一个输入状态的影响。angr的执行核心仅仅尝试队列中所有可用的引擎,使用第一个可以解决这步的引擎。下面是 默认引擎的列表,按照顺序是: 当上一步将我们带到一些无法继续…
angr-doc 5: Simulation Managers
模拟管理器 Simulation Managers 在angr中最重要的控制界面是模拟管理器,它允许你同时控制几组状态的符号执行,并使用搜索策略来探索程序的状态空间。在这里,你会学到如何使用它。 模拟管理器让你灵活地处理多种状态。状态按照“存储stash”来管理,你可以自由地步进,过滤,合并和到处查看。这能让你,比如,按照不同的速率步进两个不同的存…
angr-doc 4: Program State
程序状态 Programe State 到现在,我们为了展示angr操作的基本概念,只使用了angr的符号执行程序状态(SimState对象)最可能的方式。在这里,你会学到有关一个状态对象的结构和如何以各种有用的方式与它交互。 复习:读写内存和寄存器 Review: Reading and writing memory and registers …
angr-doc 3: Solver Engine
求解引擎 Solver Engine angr的能力不仅体现在它是一个模拟器上,也体现在它能够使用被称为符号变量的方式执行。我们可以说一个变量拥有一个符号,这个符号只要一个名字就能生效,而不是说一个变量拥有一个确实的数值。然后对符号变量执行算术操作就产生了由操作构成的树(在编译原理中它的术语是语法抽象树或者AST)。AST可以被翻译成能被一个SMT…
angr-doc 2: Loading a Binary
载入一个二进制文件 Loading a Binary 在上一章,我们初次尝试了angr的载入设施——你加载了/bin/true,并且在不加载共享资源库的同时再次加载了它。你也看到了像proj.loader等angr能做的事情。现在,我们将深入这些接口的细节,并且了解我们能通过它们获取到的信息。 装载器 The Loader 让我们加载example…
Writeup for RealWorldCTF2021 Crypto
RealWorld CTF 2021 Crypto 这次比赛有两道crypto,都是ECC相关的,第一道由于之前不了解Demytko体系,比赛期间并未找到paper,未能作出,赛后看了7feilee师傅发的paper才复现出来,第二题倒比较简单,分析出曲线的表达式然后发现在模N上是线性的即可解出。 Old Curse 这题使用的攻击方式是这篇pap…