自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Win 10 x64 Visual Studio 2019 编译 Detours 4.0.1

提示traceapi中_win32.cpp内的GetThreadLocale标识符未声明,打开该文件将4322、4323行注释;继续编译,发现SetThreadLocale未声明,继续将7049-7050行注释。将该文件的21340-21353行注释;将29384-29397行注释。

2022-10-03 20:24:45 725 2

原创 Day 3 学习代码注入技术

代码注入,MessageBoxA的第一个参数压入栈,此时,eax是MessageBoxA函数的地址。此处有一个技巧:在call address1 指令执行时,会将下一个地址(ReverseCore字符串的地址)作为下一条指令的地址(函数返回地址)压入栈,实际上是将MessageBoxA的第三个参数压入了栈。

2022-09-28 18:38:40 401

原创 Day2 BUUCTF——[WUSTCTF2020]level4

type1的参数为&unk_601290,分别对参数(8字节整数地址)的后两个值递归调用type1函数。这里边有2个关键:一个是后序遍历的最后一个元素是根节点;另一个是中序遍历中根节点前面的n元素同样是后序遍历中根节点的前面n个元素。解题方法为根据中序遍历(type1输出)和后序遍历(type2输出)结果,推导先序遍历结果。需要关注的函数有3个:init()、type1()、type2()。0x2.在linux下执行该文件,输出6行字符串后程序退出。0x1.首先下载附件,是个64为ELF文件。

2022-09-26 16:12:26 411

原创 杂谈——关于Rust

今天看到一篇关于Rust的文章:https://blog.csdn.net/csdnnews/article/details/126983662?文中提到Mark Russinovich (Sysinternals的作者)、Windows、Linux、Meta等都将进一步应用(集成)Rust语言。Rust语言作为C++的代替者,在安全方面变现较好(C++指针带来的内存问题严重)。作为一个自由程序员,看来是时候学习了解一下这门优秀的语言了。

2022-09-24 19:24:51 225

原创 Day 1 BUUCTF——特殊的 BASE64 1

简单的自定义Base64解密,动态调试和静态分析结合。

2022-09-24 18:33:47 696

原创 为何要学习软件逆向工程?

为何要学习软件逆向工程?

2022-09-24 16:38:56 278

原创 逆向工程学习笔记——写在开篇的话

记录自己学习逆向技能的心得

2022-09-24 08:12:58 107

原创 gcc编译undefined reference to `__asan_report_load2‘错误的解决方法

添加-lasan选项。

2022-04-20 16:15:04 2382

原创 2021-07-23

初试AFL++01 安装按照官方网站的步骤安装AFL++。https://aflplus.plus/building/下载源代码git clone https://github.com/AFLplusplus/AFLplusplus编译make distrib安装sudo make install输入afl-fuzz,正常运行安装成功。02 测试效果编写一个简单程序,vuln.c:#include <stdio.h>void main(){char str1[10]={0

2021-07-23 13:02:43 233

原创 Kali 2020.1安装IDA Pro

0x1 更新源0x2 dpkg --add-architecture i386 关键一步;0x3 apt-get install libglib2.0-0:i386 解决运行ida时的libgthread-2.0-0.so;0x4 下载IDA Pro for Linux,解压。

2020-04-01 13:44:01 3958

原创 Kali 安装pwndbg

0x1 源代码安装gdb,下载地址:www.gnu.org/software/gdb/do0x2 sudo apt-get upgrade0x3 下载安装pwndbggit clone https://github.com/pwndbg/pwndbgcd pwndbgsudo #./setup.sh0x4 可能会出现部分依赖软件无法下载情况,需手动下载安装,如ROPgadget等0...

2020-03-31 12:38:09 2828

原创 Kali 2020.1挂载共享文件夹

1.在虚拟机设置中添加共享文件夹;2.终端运行vmware-hgfsclient,查看共享文件夹;3.终端运行sudo /usr/bin/vmhgfs-fuse .host:/vms /mnt/hgfs/ShareFolder -o subtype=vmhgfs-fuse,allow_other挂载共享文件夹vms到ShareFolder文件夹。...

2020-03-19 14:33:08 1890

原创 Kali 2020 设置中文语言

1.设置语言sudo dpkg-reconfigure locales;2.安装语言apt-get install xfonts-intl-chineseapt-get install ttf-wqy-microhei;3.restart。

2020-03-07 10:44:24 7731

原创 Kali安装peda

1.git clone https://github.com/longld/peda.git ~/peda2.echo “source ~/peda/peda.py” >> ~/.gdbinit

2020-03-04 16:19:41 1470

原创 php截取中文字符串

使用函数mb_substr(字符串,开始位置,长度,编码)如: mb_substr(str,0,2,‘utf-8’)

2020-02-27 09:15:45 100

原创 Kali 2020修改系统为北京时间

1.运行tzselect设置时区,设置完后,按照提示将制定配置添加到.profile文件,文件夹视图Ctrl+h查看隐藏文件。2.修改完时区后重新登录,发现时间相差一小时,且格式为EST时间,而北京时间应以CST表示,此时,修改执行以下命令:1)mv /etc/localtime /etc/localtime.bak2)ln -s /usr/share/zoneinfo/Asia/Shang...

2020-02-05 11:27:36 6177

原创 Kali 2020 中文输入法安装方法

1.修改root口令:登陆选择界面 按e:在结尾添加 rw single init=/bin/bash,按F10启动。2.进入sh,passwd修改root口令;3.重新启动,以root身份登录;4.设置源gedit /etc/apt/sources.listdeb http://http.kali.org/kali kali main non-free contribdeb-src...

2020-01-31 16:29:17 9918

原创 XCTF PWN高手进阶区之babystack

此题,开启了RELRO、NX、CANARY,未开启PIE,只有read函数溢出存在溢出可能。第一,泄露canary,程序会通过puts函数输出缓冲区s的内容。puts函数在输出时,只有遇到\0才会结束,而缓冲区s又和main函数的canary相连,此时,输入和缓冲区大小相等的字符串,溢出的\n将会覆盖canary的第一字节00,从而将canary的后三个字节输出,构建canary。第二,获取s...

2020-01-30 12:49:58 476

原创 XCTF PWN高手进阶区之pwn-200

此题,setbuf未发现有什么作用!exp:from pwn import *sub_addr=0x8048484def leak(addr):payload=‘a’*112+p32(write_plt)+p32(sub_addr)+p32(1)+p32(addr)+p32(4)p.sendline(payload)return p.recv()[:4]p=process("./p...

2020-01-29 21:43:39 639

原创 XCTF PWN高手进阶区之time_formatter

这是第一道堆溢出题目,程序执行选项1时,通过strdup函数申请了一块内存保存用户输入的时间格式字符串,执行选项三时,同样 通过strdup申请了一块内存用于存放用户输入的时区字符串,执行选项五时,首先释放这两块内存,然后,询问是否真的退出,此时,用户选择不退出时,程序继续回到开始执行。而此时,前两块申请的内存已被释放,未将指针置为NULL。造成UAF漏洞。由于选项一读取用户输入内容时,会过滤...

2020-01-29 16:53:10 349

原创 div标签内元素居中的方法

设置div标签的style:"text-align:center"

2020-01-28 19:15:59 762

原创 XCTF PWN高手进阶区 之 js

本题程序名为js,随便输入字符串,发现:输入字符串会打印该字符串;输入数字时会以科学计数法打印该数字;输入加法算式会打印加法计算结果;输入!1会打印false,输入!0会打印true;输入js_fuck的命令:提示eval函数执行时引用错误。因此,推断程序执行是以输入为参数,调用eval运行。于是:输入print,打印print函数:输入read,打印read函数:1...

2020-01-28 18:37:44 298

原创 XCTF PWN高手进阶区之JS

本题程序名为js,随便输入字符串,发现:输入字符串会打印该字符串; 输入数字时会以科学计数法打印该数字; 输入加法算式会打印加法计算结果; 输入!1会打印false,输入!0会打印true; 输入js_fuck的命令:提示eval函数执行时引用错误。因此,推断程序执行是以输入为参数,调用eval运行。于是:输入print,打印print函数: 输入read,打印re...

2020-01-27 19:57:51 371

原创 xctf pwn高手进阶题之stack2

程序读取一个数字n,然后根据数字n读取数字到缓冲区,在执行需修改操作时为判断是否越界,而是根据用户输入的数字进行修改,造成堆栈地址内容修改。只需修改返回值即可。此题提供了hackhere函数输出flag,本地执行正常,远程出错,提示找不到/bin/bash。此处,技巧是执行system(’sh’)代替system(’/bin/sh’)。exp:from pwn import *p=remot...

2020-01-25 21:39:24 308

原创 xctf高手进阶题之pwn-100

此题重点为DynELF函数的使用。在函数 sub_40068E()中声明了一个大小为0x40的缓冲区,然后通过函数sub_40063D((__int64)&v1, 0xC8u);读取标准输入内容到该缓冲区,读入的长度为0xC8,大于缓冲区大小0x40,存在溢出漏洞。可以通过溢出后覆盖函数的返回地址:1.输出got表的函数地址;2.向可写段地址写入字符串"/bin/sh"。 ...

2020-01-25 13:31:20 659

原创 xctf高手进阶第二题 Mary_Morton

启动运行时输出提示有三个选项,分别是:1.缓冲区溢出漏洞;2.格式化字符串漏洞;3.退出。 解题方法:因为缓冲区溢出在main函数中,利用格式化字符串漏洞读取main函数的canary,利用缓冲区溢出运行0x4008DA处的system (/bin/cat flag)指令。 exp: from pwn import * p=remote('111.198.29.45'...

2020-01-23 20:06:32 372

原创 xctf高手进阶第一题

首先,fgets读取v13,然后scanf读取v2,通过程序条件判断发现,输入a@a.aaaaaaa时,程序会执行到v12,覆盖v12即可调用指定地址的函数。在做题时,进入误区,自己构造system栈帧,结果一直失败,可能有的地方计算错误。writeup里的方法是直接调用后门函数0x80486cc处的函数,直接输出flag。这个后门函数在IDA Pro中没有显示,可以通过objdump -d ....

2020-01-23 20:00:28 217

原创 xctf pwn 新手练习题总结

所谓总结,就是再做一遍!以达到熟能生巧之境界!0x01 level0解题思路:ret2text1.checksec ,文件为amd64位格式,进开启可NX;2.IDA Pro F5反编译,main程序调用vulnerable_function,vulnerable_function中调用read读取用户输入,存在缓冲区溢出;3.程序代码中由callsystem函数,运行systerm...

2020-01-21 20:26:04 793

原创 xctf学习之intoverflow

此题题目为intoverflow,提示整数溢出,IDA阅读伪代码,发现Success条件是输入password长度为[3,8),而要程序中有个函数what_is_this,功能是cat flag,所以要想获取flag,需要让程序运行此函数,而程序的运行并没有调用此函数,因此,必须溢出。存储输入password长度的变量是短整型,即8位二进制数,范围[0,255],当值大于255时,发生溢出,如25...

2020-01-11 21:25:22 509

原创 Kali安装ROPgadget

ROPgadget在Pwn中用于搜索汇编指令和字符串,安装方法:1.安装python-capstone:apt-get install python-capstone2.下载安装文件:git clone https://github.com/JonathanSalwan/ROPgadget.git3.进入目录 :cd ROPgadget4.运行安装脚本: python setup.py d...

2020-01-11 18:54:02 2269

原创 Pwnable.kr学习之cmd2

此题考察内容:linux下(command)的使用,可以用于将command执行的结果作为命令交给shell执行。如:(command)的使用,可以用于将command执行的结果作为命令交给shell执行。如:(command)的使用,可以用于将command执行的结果作为命令交给shell执行。如:(pwd) 的效果为致性’/’,这不是命令故,报错。再如:当前目录为根目录/,此时 $(pwd...

2020-01-10 20:16:47 128

原创 pwnable.kr学习之cmd1

看题目,Mommy! what is PATH environment in Linux?,联想到题目shellshock利用环境变量执行命令的技巧,尝试了多次,如:./cmd1 pwd &"env X={ : ;} PATH='/bin/sh' bash /bin/sh" 和./cmd1 &a但是,会输出奇怪的内容:第一条命令输出:[1] 84342-bash...

2020-01-05 17:51:22 133

原创 xctf之level3

未调试,可能由错误!from pwn import *from LibcSearcher import *p=process('./level3')elf=ELF("./level3")write_plt=elf.plt["write"]read_plt=elf.plt["read"] #0x8048310print "readplt:"+str(hex(read_plt))...

2020-01-04 10:04:19 769

原创 安装LibcSearcher的方法

在练习Pwn过程中,要用到python的一个库,叫做LibcSearcher,安装方法如下:1.git clone https://github.com/lieanu/LibcSearcher.git2.cd LibcSearcher3.python setup.py install4.直接运行python exp.py会提示“No module named LibcSearche...

2020-01-04 09:09:01 11362 1

原创 xctf-pwn 之guess_num

未解出!经过最近几道题,发现自己思路不够开阔,不能做到应变。此题考查内容:伪随机数可预测。解题方法:通过IDA反编译后,F5获得伪代码,通过阅读伪代码,理清程序结构,找到破解关键:使用随机数生成数字。如果已知随机数种子,就可以提前知道随机数的值。可以通过溢出覆盖种子值。...

2019-12-30 19:46:54 302

原创 Pwnable.kr学习之blackjack

此题未作出,首先尝试按照提示下载源代码,发现网站拒绝访问。于是,我认定题目有问题,放弃!参考writeup后,发现并不需要源代码,此题考查的是求异思维:既然赢一次比较难,要看运气,那么故意输的话则概率大得多。如果看到这你想到了什么,就不要看下面,自己试一下。看来你和我一样懒:当...

2019-12-30 19:17:34 154

原创 xctf-pwn 之string

此题未解出来,参考writeup后总结如下。解题思路: 漏洞点在"give me a address“处,通过IDA反编译后,F5生成C伪代码,分析数据流,发现运行shellcode的条件:*a1==a1[1]。a1为整形指针(见函数参数声明),指向secret 0,a1[1]指向secret 1(见main函数)。通过格式化字符串任意地址写入漏洞使之相等,再利用pwntool...

2019-12-29 18:57:30 827 1

原创 Pwnable.kr学习之coin1

考察知识点:1.python基本编程;2.远程linux服务器目录/tmp的利用;3.二分查找算法解题过程:a.按照提示,nc pwnable.kr 9007连接服务器,服务器返回游戏玩法提示信息,即根据N(总数量)和C(测试次数)寻找一堆球里面一个重量jiao小的球(重量为9,其余重量为10),时间限制为30秒;b.显然,使用二分法查找,函数结构为迭代,利用pwntool...

2019-12-29 11:04:35 276

原创 Botnet中的C&C

C&C(Command and Control)是僵尸网络的核心部分,攻击者在维护、管理僵尸网络的时候,需要通过C&C来完成和僵尸机之间的通讯,达到远程控制的目的。早期的僵尸网络拓扑结构以集中式为主,如基于IRC 的僵尸网络,该类型的僵尸网络通过IRC协议实现通信。形成星形的拓扑结构,IRC服务器作为中心节点。僵尸病毒感染主机后,主动加入IRC服务器上的一个预设的聊天室(Cha...

2019-12-17 11:08:07 3930

原创 Pwnable之passcode

pwnable第一道求助题前几天开始做pwnable的练习题,前四题比较容易,到了第五题,本机调试可以获取flag,但是,在远程主机上却失败了。原因:本机某地址可写入而远程主机该地址不可写导致程序异常。漏洞:源代码passcode.c的第九行,scanf的参数passcode1未初始化且无&符号,导致实际读入的数字写入到了passcode1的值所代表的地址中,而不是读取到pas...

2019-12-15 11:32:03 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除