- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 Fun_G
坦克大战 https://diep.io/?language=en Bemuse音乐游戏 https://bemuse.ninja/ 红白之家 https://nes.heheda.top/game.html?id=2 射击训练 https://aim400kg.com/game/1 电子魔方 https://cuber.heheda.top/ 在线斯诺克 http://www.heyzxz.me/pcol/ 小电视 http://tvdang.ddns.net:8000/ 重启人生模拟器 h
2021-10-29 09:55:21
2600
原创 MySQL客户端任意文件读取
简介我们通过伪造一个MySQL服务端,当有用户链接我们这个服务端的时候,我们可以尝试通过MySQL的load data local infile语句来读取客服端文件,在溯源反制这一块比较有用…LOAD DATA INFILE出现可以读取客户端文件的这个问题的原因主要是出在LOAD DATA INFILE这个sql语句上,这个语句主要是用于读取一个文件的内容并且放到一个表中。通常有两种用法,分别是:load data infile “/server/etc/passwd” into table Te
2021-07-30 16:33:27
1675
原创 python查找子字符串出现的所有位置
简介通过正则表达式将字符串中找出所有字符串出现的位置,可以用于文件格式提取等工作…例子通用模型import readdr = [substr.start() for substr in re.finditer(子字符串, 原字符串)]比如在原字符串buf中寻找子字符串sub 1出现过的位置>>> import re>>> buf = "1231234567890absd11aasda1;;;\x00\x44">>> sub = "1"
2021-05-25 10:37:28
5587
1
原创 Linux syscall Hook
简介Linux程序基本都是靠系统调用(syscall)来实现的, 所以可以控制到syscall, 就可以对程序进行监控或修改了;前置知识我们知道现在系统中程序分为64位和32位的, 系统为了兼容这些程序对系统函数的调用方法进行了简单的区分,最直观的就是64位程序使用syscall来调用系统函数,而32位的程序使用的是int 0x80, 比如这里的sleep函数的系统调用:64位程序:32位程序:当然, 不是简单一个syscall命令或者int 0x80命令就可以完成一个系统调用, 还有一个系
2021-03-26 20:25:43
1940
原创 常用命令~
简介远程代码管理离不开git的使用, 这里列出常用的也是必用的几条;命令clonegit clone查看远程分支:git branch -a检查git checkout查看修改的文件git status添加修改的文件git add file1 file2本地提交git commit -m获取远程代码仓库git fetch确认无冲突git merge origin/dev提交到远程git push origin dev......
2021-03-10 14:44:17
10973
原创 Django中添加文件上传功能
创建一个应用python3 manage.py sandbox index创建文件夹在sandbox目录下创建一个templates目录, 为了规范再在templates目录创建一个和应用同名的目录sandbox, 然后在创建一个upload.html文件;upload.html文件主要内容如下: <form id="filesub" action="/upload" method="post" enctype="multipart/form-data"> {% csr
2021-01-22 10:46:47
11322
1
原创 gdb调试多进程
简介在Linux系统下主要使用的调试器就是gdb, 但是在使用gdb的时候遇到了多进程的程序时,默认的配置我们是不可以直接多多个进程同时进行调试的, 需要设置几个参数…例子这里程序利用fork()函数生成了一个子进程(第一个框中就是子进程执行的代码);follow-fork-mode和detach-on-fork通过在gdb中设置follow-fork-mode和detach-on-fork的值来调试子程序, 在gdb中分别默认的值是: parent和on:follow-fork-mo
2020-12-01 11:15:28
10069
原创 off-by-one
简介off-by-one漏洞在堆分配时有比较大的威胁, 在pwn中利用比较常见, 这里介绍一个由base64解码造成的off-by-one漏洞, 这个漏洞在CVE-2018-6789当中是真实存在的, 这里以一个ctf中的pwn题目notepad来介绍一下利用过程;前置知识原理在分析程序之前先介绍一下Base64的编码和解码的原理;Base64编码Base64编码的原理是将二进制数据进行分组,每24Bit(即3字节)为一个大组,再把一个大组的数据分成4个6Bit的小分组;因为6bit数据只能表示
2020-11-05 17:06:43
9858
原创 代码注入
简介代码注入在分析程序或制作外挂外挂时是非常爱使用的一种手段, 通常用于调用程序功能, 比如调用程序中的call;其基本原理和DLL注入的原理一样, 目前已经有很多工具可以直接实现代码注入或DLL注入了, 本文只是学习一下原理…思路思路很简单, 基本就两大步:OpenProcess打开需要注入的程序, 获取句柄;通过CreateRemoteThread函数将我们需要注入的代码以新的线程的方式进行运行, 到达注入的效果;通过PEB获取模块基址通常我们注入的代码一般都是汇编, 如果注入是很复杂
2020-11-01 14:00:33
10238
原创 Cobalt Strike远控木马分析
简介Cobalt Strike目前已经很流行, 其生成的木马在很多地方也可以找到, 这里通过网上发布的一个aqy的免广告的工具中带的木马进行分析学习…过程找到可疑文件这里通过Exeinfo.exe工具, 发现可疑DLL, 文件被vmp 2.07加了壳, 很明显一般的dll不会加这种壳:行为分析通过OD我们进行调试, 发现此dll的主要功能是调用当前目录下的powershell脚本dataup.ps1:查看此dataup.ps1, 代码如下:sal a New-Object;Add-Typ
2020-10-21 22:17:33
15888
1
原创 SafeSEH
简介safeseh是在seh的基础上进行的改进, 是异常处理的关键结构, 不同的编译器可能使用的safeseh不一样, 但是基本的思想都一样;safeseh验证异常处理链起始位置储存在fs:[0]的位置, 在进程的DEP是开启的情况,有两种异常处理函数被异常分发器认为是有效的:异常处理函数在进程映像的SafeSEH表中,并且没有NO_SEH标志。异常处理函数在进程映像的可执行页,并且没有NO_SEH标志,没有SafeSEH表,没有.NET的ILonly标志。在进程的DEP关闭的情况下
2020-09-27 19:56:25
9958
原创 Windows用户操作
简介通过Windows API对Windows用户进行添加, 密码修改, 禁用等操作;代码#ifndef UNICODE#define UNICODE#endif#pragma comment(lib, "netapi32.lib")#include <stdio.h>#include <windows.h> #include <lm.h>#include <atlstr.h>int main(){ USER_INFO_1 ui
2020-08-31 11:32:12
9781
原创 给程序加一个按钮
简介有时候我们会觉得某个已经编译好了的程序的功能不是那么完美,我们想要再添加一些额外的功能,但是我们又没有源码,不方便直接进行修改重编译打包,这时候我们就可以考虑给程序添加一个新功能的按钮了…思路思路很简单,无非就是利用子类化技术,直接编写DLL,然后注入到程序当中去,虽然就一句话但是具体的工作还是比较多,这里我就通过给植物大战僵尸程序为例子仔细说说…编写DLL创建按钮因为我们主要目的是添加一个按钮功能,使用这里主要用到的函数是CreateWindow…Syntax:HWND CreateW
2020-07-03 13:34:22
10668
原创 C语言获取任意Windows程序模块基地址
我已无力接住你,再也不能抗风雨函数这里主要用到的函数是EnumProcessModulesEx:BOOL EnumProcessModulesEx( HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded, DWORD dwFilterFlag);hProcess表示处理的句柄;lphModule表示接收模块句柄列表的数组;cb表示lphModule数组的大小,以字节为单位;lpc.
2020-06-04 23:15:55
25186
8
原创 Android APP渗透测试(2)-Objection
简介objection是基于Frida的一个工具,可以方面我们直接找出apk中的需要HOOK的方法,还可以答应函数的参数,返回值以及栈调用等等,是我们在写Frida脚本的一个不错的辅助工具;安装因为Frida的安装通常需要Python3.7及以上,所以这里objection也使用Python3.7进行安装;如果运气好的话直接使用pip就可以安装:sudo pip3.7 install objection如果有一些报错的话,需要安装依赖再重新编译安装Python3.7,比如:报错一:Modu
2020-05-26 11:14:03
12085
原创 Linux Hook--ptrace的常用参数使用
简介ptrace是一种系统调用,也就是进程追踪(process trace);用于对进程的执行进行干涉以及寄存器状态(值)的读取以及设置,内存的写入与读取;我们常用的Linux下的gdb主要功能实现就是通过ptrace系统调用的:#include <sys/ptrace.h>long ptrace(enum __ptrace_request request, pid_t pid,...
2020-04-28 20:00:03
10918
3
原创 Android APP渗透测试(1)-Frida
简介Frida是一个多平台的hook框架,功能强大,不仅可以进行常规的Hook工作,还可以完成内存扫描,脱壳等工作,Frida是Python API,但是是JavaScript调试逻辑,核心是用C编写的,并将Google的V8引擎注入到目标进程中,在这些进程中,JavaScript可以完全访问内存,挂钩函数甚至调用进程内的本机函数来执行;安装Frida的安装非常简单,但是Python版本可能...
2020-04-23 11:46:43
10616
原创 PHP序列化
序列化serialize()将对象转变成一个字符串便于之后的传递与使用;序列化会保存对象所有的变量,但是不会保存对象的方法;反序列化unserialize()将序列化的结果恢复成对象;反序列化一个对象,这个对象的类必须在反序列化之前定义,或者通过包含该类的定义或者使用 spl_autoload_register() (自动包含类)实现;例子<?phpclass Demo{ ...
2020-03-02 14:26:22
10001
原创 针对IO的利用
简介正常情况下我们用户的输入长度和写入位置都在受到程序限制的,不可能让用户任意地址任意长度写入;但是利用特定的漏洞,我们可以修改到IO结构体中的指针,就可以绕过上面的那些约束从而getshell…_IO_FILE在结构体_IO_FILE当中有很多关键指针:结合源码:int_IO_new_file_underflow (_IO_FILE *fp){ _IO_ssize_t co...
2020-02-05 15:39:02
10114
通过DLL给程序加一个按钮
2020-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人