• SQL 注入基础

    注意以下都是基于数据库是 MySQL 的情况,对于其他数据库来说过程大同小异,只不过需要注意一下数据库和表名的获取等步骤。 SQL 注入基础数据库的结构数据库的结构如下图所示: 数据库实例(Database Instance):所有数据库通常运行在某个数据库实例上,实例是一个正在运行的数据库管理系统(DBMS)。 数据库(Database):是有序的数据集合,每个数据库包含多个表。 表(T...
  • PHP 反序列化

    PHP 测试:https://onlinephp.io/ PHP 序列化格式基本数据类型基本数据类型的序列化格式只描述值,不包含变量名。 Null格式:N; 12$n = null;$serialized = serialize($n); // 结果: N; 布尔值(Boolean)格式:b:<value>; 示例:b:1; 表示 true,b:0; 表示 false。 12$...
  • IDA Python 使用总结

    环境配置切换 python 版本运行 IDA 安装目录下的 idapyswitch.exe ,选择使用的 python 解释器。 在 PyCharm 中写 IDAPython 脚本在 PyCharm 的设置→项目→Python解释器点击设置选择全部显示….点击如下位置添加自定义路径路径选择 IDA Pro 7.6\python\3 貌似 3 和 2 表示 Python3 和 Python2 ...
  • XML 外部实体注入漏洞

    XML(可扩展标记语言)XML 的定义XML(eXtensible Markup Language,扩展标记语言)是一种用于描述结构化数据的标记语言,它类似于 HTML,但它的标签是自定义的。XML 的主要目的是传输和存储数据,而不是显示数据。 XML 的语法XML文档由元素、属性、文本、CDATA、注释、处理指令和实体组成。 基本结构: 12345<?xml version=&quo...
  • windows user pwn

    栈溢出32 位栈溢出附件下载链接 程序保护如下,没有开 GS 保护。程序是一个简单的栈溢出: 12345678910111213141516int __cdecl main_0(int argc, const char **argv, const char **envp){ char v4; // [esp+0h] [ebp-1D4h] char v5; // [esp+0h]...
  • windows user pwn 基础知识

    环境搭建checksecwinchecksecwinchecksec 是 windows 版的 checksec ,不过有时候结果不太准确。 checksec(x64dbg)x64dbg 的插件 checksec 检查效果比较准确,并且可以连同加载的 dll 一起检测。将 release 的插件按 32 和 64 位分别放到 x32dbg 和 x64dbg 的 plugins 目录,如果找不...
  • linux kernel pwn 常用结构体

    tty 设备结构体tty 设备在 /dev 下的一个伪终端设备 ptmx 。 tty_struct(kmalloc-1k | GFP_KERNEL_ACCOUNT)tty_struct 定义如下 。 123456789/* tty magic number */#define TTY_MAGIC 0x5401struct tty_struct { int ...
  • linux kernel pwn 内核利用

    NULL Pointer Dereference上古利用方法,仅做记录。 如果内核模块中存在可以被调用的空函数指针,那么调用该空指针函数会执行 0 地址对应的代码。如果此时在内存 0 地址处实现写入 payload 就会执行payload。 首先内核驱动代码如下,其中 my_funptr 是一个空函数指针,且在调用 write 函数时会执行到。 12345678910111213141516...
  • linux kernel pwn 基础知识

    linux 内核概述Linux 内核由 Linus Torvalds 于 1991 年开发,最初的目的是为 Intel 80386 处理器编写一个类 UNIX 系统的内核。当前版本的 Linux 内核由全球社区共同开发维护,通过 Git 管理源代码。 内核概述内核(Kernel)是操作系统的核心部分,负责管理硬件资源并提供给用户程序使用。它充当硬件和应用程序之间的桥梁,是操作系统最基础和最关...
  • musl pwn

    调试环境搭建debug musldebug_musl 可以源码调试。运行 setup.sh 将源码及相关动态链接库解压到根目录下 musl 文件夹下,用的时候只需要将对应版本的 libc.so 文件复制到目录下,然后利用 patchelf 运行如下命令修改可执行文件所依赖的 ld 为 libc.so 即可进行源码调试。 1patchelf --set-interpreter ./libc....
123