1.本文一共4500多字 88张图 预计10分钟阅读完毕2.本人系复眼小组ERFZE师傅原创,未经允许禁止转载3.本文可能存在部分表达的不清甚至错误的情况,还希望各位看官在公众号留言多多提出,非常感谢!
格式化字符串函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析之后的参数
最近刚刚接触到PLT与GOT,所以就想以此篇文章来巩固一下我对于这对姐妹花的理解啦!刚刚接触,理解不深,还请大佬轻喷!
step 1 首先要检查一下自己是否安装过gdb了 终端中输入gdb -v即可
本文主要介绍利用ubuntu搭建pwn做题环境,包括pwntools,gdb,gdb-pwndbg,gdb-peda,libc库等
https://whereisk0shl.top/post/2016-10-23-1
做了一个CTF题目,遇到了一些有趣的东西,所以写了这篇文章记录了一下。 但是我却不明白造成这个问题的原因在哪里,所以不知道给文章起什么标题,就姑且叫这个非常宽泛的名字吧。
上篇我们介绍了ret2text,但是这种利用方式有很大的限制。使用ret2text的前提是,程序中有写好的可返回shell的function。否则,就没办法利用了。
因为程序本身没有正确检查输入数据的大小,造成攻击者可以输入比buffer还要大的数据,使得超出部分覆盖程序的其他部分,影响程序执行。
什么是Rop系统攻击 是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码。
0x00 背景 一朋友问到在pwn中,gdb调试看到了systemm("/bin/sh")了,但是shell确无法启动。于是我详细看了一下这个题目,发现自己的exploit绝大多数情况下也无法启动shell。 0x01 题目解答 用IDA逆了一下,程序很简单,printf的参数可以控制。 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // [sp+14h] [bp-6Ch]@3
最近在刷pwnable.tw(类似pwnable.kr,不过是台湾的)的题,看到了一个unexploitable的题目。根据题目描述:
团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。
一直有人说这个时代做渗透太难了, 各个平台都开始重视安全性, 不像十几年前, 随便有个栈溢出就能轻松利用. 现在的环境对于新手而言确实不算友好, 上来就需要 面临着各种边界保护, 堆栈保护, 地址布局
目录 以下是solution的目录 #fd #collision #bof #flag #passcode #random Other 一些pwn题目的解题思路[pwnable.kr] II fd 根据题目描述,登录上服务器,ls一下 fd@ubuntu:~$ ls fd fd.c flag fd@ubuntu:~$ cat flag cat: flag: Permission denied 肯定flag也不能直接读取,既然给了源代码,就顺便看一下。 #include <stdio.h> #includ
上篇我们介绍了一下格式化字符串漏洞的原理,并讲解了32位elf程序的格式化字符串漏洞的利用。
下载下来直接运行,提示缺libcrypto库,但是我却安装过了openssl。于是在lib下看,确实是没有这个库。因为我的环境是ubuntu x86_64装的openssl也是64位的,所以要安装32位的库,使用这个命令:
0x01 vDSO 是什么 孙子兵法最核心的价值观就是:知己知彼,百战不殆。 为了搞清楚vDSO在内核提权中的应用,首先就要搞清楚vDSO到底是什么,我们来看下vDSO的定义: The "vDSO" (virtual dynamic shared object) is a small shared library that the kernel automatically maps into the address space of all user-space applications. Applica
★ 本文旨在介绍vDSO在内核提权中绕过SMEP/PXN的应用 ★ 0x01 vDSO 是什么 孙子兵法最核心的价值观就是:知己知彼,百战不殆。 为了搞清楚vDSO在内核提权中的应用,首先就要搞清楚vDSO到底是什么,我们来看下vDSO的定义: The "vDSO" (virtual dynamic shared object) is a small shared library that the kernel automatically maps into the address space of al
最近刚开始学习逆向(Reverse Engineering), 发现其学习曲线也是挺陡峭的, 而网上的 许多writeup文章主旨总结就六个字:“你们看我屌吗?” …几近炫技而对初学者不太友好. 所以
ulink 有一个保护检查机制,他会检查这个 chunk 的前一个 chunk 的 bk 指针是不是指向这个 chunk(后一个也一样)
PWN是一个黑客语法的俚语词,自”own”这个字引申出来的,意为玩家在整个游戏对战中处在胜利的优势。本文记录菜鸟学习linux pwn入门的一些过程,详细介绍linux上的保护机制,分析一些常见漏洞如栈溢出,堆溢出,use after free等,以及一些常见工具介绍等。
$gcc -g -Wall hello.c -o hello $g++ -g -Wall hello.cpp -o hello
基本过程是首先使用汇编通过系统调用的方式实现程序功能,编译成可执行文件,然后使用 objdump 进行机器码提取
在skip_short_body()中,会对分块的编码进行strtol()函数调用,来读取每个块的长度
PWN 是一个黑客语法的俚语词,是指攻破设备或者系统。发音类似"砰"。对黑客而言,这就是成功实施黑客攻击的声音”砰”的一声,被"黑"的电脑或手机就被你操纵了。
C 语言的奇技淫巧 https://jin-yang.github.io/post/program-c-tips.html
根据readData和writedata函数的逻辑发现数组是char [22][12],主要是判断越界的if语句有逻辑漏洞
注:本博文记录压缩包中ELF文件flag的获取过程,exe文件flag是乱码,具体过程就不给大家演示了。着重分享GDB的内容。
暑假的时候遇到了一群一起学习安全的小伙伴,在他们的诱劝下,开始接触国外的CTF比赛,作为最菜的pwn选手就试着先打两场比赛试试水,结果发现国外比赛真有意思哎嘿。
里面讲了简单的printf()实现。这里讲的除了x86-64里的pwn之外的都是32位。
64位linux下栈溢出漏洞利用 linux_64与linux_86的区别有:可以使用的内存地址不能大于0x00007fffffffffff,否则会抛出异常。其次是函数参数的传递方式发生了改变,x86中参数都是保存在栈上,但在x64中的前六个参数依次保存在RDI, RSI, RDX, RCX, R8和 R9中,如果还有更多的参数的话才会保存在栈上。 有很多代码都是借鉴一步一步x64教程中的,然后发现x64教程中有很多问题,自己手动调试,写了三种利用方式,不过都大同小异。漏洞源码vuln.c: ![#incl
gdb也用了好几年了,虽然称不上骨灰级玩家,但也有一些自己的经验,因此分享出来给大家,顺便也作为一个存档记录。
前两天,VMware发布了一份安全公告,并修复了VMware ESXi、Workstation、Fusion和NSX-T中的六个安全漏洞。其中有两个漏洞属于TOCTOU(Time-of-check Time-of-use)竞争条件漏洞,既然现在漏洞已被修复,那我们就一起来看一看这两个TOCTOU漏洞的详细信息以及其对VMware系统的影响吧!
他说他会去执行代码,但是我只试了 php 的,wp 说是 C 语言的,找了个 C 语言的 shell
stack0 $ python -c "print 0x44*'a'" | ./stack0 you have changed the 'modified' variable stack1 $ python -c "print 0x40*'a'+'\x64\x63\x62\x61'" | xargs ./stack1 you have correctly got the variable to the right value stack2 import os payload = 'a'*0x40 + '\
这个库是我安装完python环境后第一个安装的库,装上这个库再开始写代码才有底气,作者 Kenneth Reitz 是公认python领域代码写的最好的两个人之一,多才多艺,年轻有为。关于此人的各种趣事和牛逼之处可以点击阅读原文。
因为 MS_T120 这个 channel 是内部 Channel,MS_T120 Channel 被绑定两次(内部绑定一次,然后我们又绑定一次——id 不是 31)。由于绑定的时候没有限制,所以绑定在两个不同的 ID 下,因此 MS_T120 Channel 就有两个引用,假如我们关闭 channel,就触发一次 free,而我们断开连接系统默认也会 free,那就变成了 Double Free 了(其实 Double Free 是 UAF 的特殊情况,因为这个 USE 是 free 而已)。
Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台。它能帮助你提升渗透测试技能和黑盒测试技能,它包含了一些不断更新的挑战,其中有模拟真实世界场景,也有倾向于CTF风格的挑战。
C:c语言是必须得会的。推荐书籍《c程序设计语言》,也可以看看网课,中国大学mooc,b站上都有很多的资源。 C++ :推荐先看基础网课,然后再看《c++ prime》,看个大概就好..看的太仔细不用也很容易忘.. Python : 有了前面的铺垫,学python就会很快,廖雪峰的python教程,《Python编程从入门到实践》等都不错。 汇编 : 用王爽的《汇编语言》来入门是不错的. 不过这本书是16位汇编,入门后还得找找32位,64位汇编资料来看看。这里说的汇编都是asm汇编. 上面学的都只是语法,还得做做oj上面的题,能够用编程语言把自己的想法表达出来。会写汇编也很重要,写shellcode必备.
*本文原创作者:freezing,本文属FreeBuf原创奖励计划,未经许可禁止转载
前言记录在复现CVE-2019-10999时踩的坑。漏洞信息https://github.com/fuzzywalls/CVE-2019-10999该漏洞存在于Dlink DCS-93xL、DCS-50xxL系列摄像头的所有固件版本中。在设备的alphapd服务中,wireless.htm 在将其显示给用户之前进行处理。如果在URL中提供WEPEncrypt
这次比赛值得吐槽的地方很多,但是我要忍住,先讲正经的。 这次总结比赛的两道pwn,都是栈溢出类型的,比较简单。先放上题目链接:http://pan.baidu.com/s/1miT1kPM 密码:hwt3
主要是IDA,IDA的安装就不用多说了。这里说明的是辅助插件MIPSROP这些插件的安装,书里面给的插件的链接已经无法支持IDA 6.7以后的版本,主要是由于版本以后的API有更新,具体原因IDA的官方博客也给出了说明,查看了issue以后,发现有大佬已经写了能够支持IDA7.0的插件,安装的命令照着readme做即可顺利的装上。
CTF的PWN题想必是很多小伙伴心里的痛,大多小伙伴不知道PWN该如何入门,不知道该如何系统性学习,本期开始,斗哥将输出PWN的一系列文章,手把手带小伙伴们入坑 。
目标:覆盖 key 的值为 0xcafebabe。找一下 overflowme 到 key 的偏移量就好了。
借助hitcon training的题目对三种堆的利用方法进行了一个系统的学习,刚入坑的堆小白们可以一起学习一下。题目链接:https://github.com/scwuaptx/HITCON-Training
SROP 学习过程中,很大一部分人写的 smallest 这道题的 writeup 让我感觉很疑惑,为了证明他们写的存在一定问题,被迫走上了 pwntools + gdb 调试的路,所以这次只能用视频来进行展示了,文章剩余部分是讲义的内容 也不知道因为啥,磨磨唧唧唠了近两个小时,在视频中,大家可以 get 以下内容: SROP 原理及利用 一道 CTF 题的解题方法 pwntools + gdb 如何进行调试 SROP 整个过程中栈的内容是如何变化的 一些偏执... 视频已经上传到 B 站了 https:/
领取专属 10元无门槛券
手把手带您无忧上云