当前位置:网站首页>Attack and defense world - PWN learning notes
Attack and defense world - PWN learning notes
2022-07-07 12:23:00 【hcjtn】
PWN Learning notes
One , Stack introduction
Stack : Stack is a data structure in computer system , It stores data according to the principle of "first in, second out" , The data entered first is pushed to the bottom of the stack , The last data is at the top of the stack , When you need to read data, pop up the data from the top of the stack ( The last data is read by the first ), It's a special linear table . Stack operation commonly used is stack entry (PUSH), Out of the stack (POP), There are also commonly used marks for the top and bottom of the stack .
Into the stack (PUSH): Putting a data on the stack is called entering the stack (PUSH)
Out of the stack (POP): Take a data out of the stack and call it out of the stack (POP)
To the top of the stack : Common registers ESP,ESP It's a stack pointer register , It has a pointer in its memory , The pointer always points to the top of the top stack frame of the system stack .
At the bottom of the stack : Common registers EBP,EBP Is the base pointer register , It has a pointer in its memory , The pointer always points to the bottom of the top stack frame of the system stack .
Two , Stack overflow
1. Assembly level function call process :
Every call to every function , Each has its own stack frame , All kinds of information needed are maintained in this stack frame . register ebp Point to the bottom of the current stack frame ( High address ), register esp Point to the top of the current stack frame ( Low address ).
Stack overflow : The character length written by the user exceeds the character length of the variable itself, resulting in buffer overflow and rewriting of useful storage units , Write arbitrary data to these units , Generally, it will only lead to accidents such as program crash , But if you write carefully prepared data to these units , It can make our data replace the original code to execute the program , Cause the code we want to be executed .
3、 ... and , Common function
Four , file information
View file information :file
Check the file program :checksec
Arch File attribute
RELEO Bind dynamic symbols to reduce pairs GOT attack
Stack canary stack Protect
NX Unenforceable
PIE Address randomization
Production view header information :readelf-h
function : run
Select File :gdb
Look at the stack data :stack
Check the position of the string :search‘ character string ’
5、 ... and ,ROP
1. Definition :( Baidu )ROP Its full name is Return-oriented Programming( Return oriented programming ) It is a new attack based on code reuse technology , An attacker extracts instruction fragments from an existing library or executable , Build malicious code .ROP Attack the same Buffer overflow attack , Format string vulnerability attacks are different , It's a new way to attack , It uses code reuse technology .
2.ROP Attack prevention :ROP The attack program mainly uses the vulnerability of stack overflow to attack hijacking .
6、 ... and , Pile up
1. Definition :
The memory that needs to be allocated and released when data is running .( Variable size )
2.chunk( Structure of memory block )
chunk start:chunk From
size :chunk Size
memory:malloc Wait for the function to return to the user chunk Data pointer
3.glbic( Heap management )
- arena: Refers to the heap memory area native , Not structure .
- malloc_state: Manage the state of the heap , Information ,bins Linked list
4,bins
- Used to manage free memory blocks , Usually use the linked list structure 0 management
7、 ... and ,Glibc Heap
- Memory allocation is divided into : Dynamic allocation and static allocation .
- ptmalloc data structure
- malloc/free summary
8、 ... and , Formatted string
Concept : In the process of programming , Allow coders to pass special placeholders , The rule string that integrates or extracts the relevant corresponding information .
Format strings are divided into format input and format output .
Common formatting string constants :printf fprintf …
Format string vulnerability summary The user can read the memory by controlling the format string , Modify the memory value ( utilize %n Write to the specified memory address ), The application crashed .
Nine ,PLT and GOT surface
linux The build process : Preprocessing , compile , assembly , link
Dynamic compilation and static compilation
Dynamic compilation features : Avoid the waste of space , But the efficiency of dynamic compilation is lower than that of static compilation .
GOT surface : The real address is stored in the table , Seven fields need to be dynamically modified , It's writable
Library function :stdio,ctype, string etc.
Ten , Common instructions
- see file :file file name
- Check the documents :checksec --file= file name
- Run the file :./ file name
11、 ... and , exp Script
- from pwn import* Import function library ( Application pwn Tools )
- context() Easy to find mistakes
- def main () The main function
- hcj=remote(” “) long-range
- payload= Output data
- hcj.recvuntil(” “) Where to receive
- hcj. sendlineafter(" ",) Execute to which sentence to send a piece of data
- hcj.sendline(" ") Send a piece of data
- hcj.interactive() Accept
Add :gets Functions must be loopholes
Reference list :
https://blog.csdn.net/weixin_43847969/article/details/104390904?spm=1001.2014.3001.5506
https://blog.csdn.net/qq_41988448/article/details/103124339?spm=1001.2014.3001.5506
The rest of the information is from the Internet
边栏推荐
- HCIA复习整理
- Processing strategy of message queue message loss and repeated message sending
- ES底层原理之倒排索引
- UP Meta—Web3.0世界创新型元宇宙金融协议
- [extraction des caractéristiques de texture] extraction des caractéristiques de texture de l'image LBP basée sur le mode binaire local de Matlab [y compris le code source de Matlab 1931]
- The road to success in R & D efficiency of 1000 person Internet companies
- 超标量处理器设计 姚永斌 第10章 指令提交 摘录
- [filter tracking] strapdown inertial navigation pure inertial navigation solution matlab implementation
- Superscalar processor design yaoyongbin Chapter 9 instruction execution excerpt
- Matlab implementation of Huffman coding and decoding with GUI interface
猜你喜欢
Visual Studio 2019 (LocalDB)\MSSQLLocalDB SQL Server 2014 数据库版本为852无法打开,此服务器支持782版及更低版本
Fleet tutorial 14 basic introduction to listtile (tutorial includes source code)
Sign up now | oar hacker marathon phase III midsummer debut, waiting for you to challenge
跨域问题解决方案
Flet教程之 17 Card卡片组件 基础入门(教程含源码)
【玩转 RT-Thread】 RT-Thread Studio —— 按键控制电机正反转、蜂鸣器
NPC Jincang was invited to participate in the "aerospace 706" I have an appointment with aerospace computer "national Partner Conference
(待会删)yyds,付费搞来的学术资源,请低调使用!
数据库系统原理与应用教程(010)—— 概念模型与数据模型练习题
Tutorial on the principle and application of database system (011) -- relational database
随机推荐
MATLAB实现Huffman编码译码含GUI界面
Review and arrangement of HCIA
《通信软件开发与应用》课程结业报告
<No. 9> 1805. 字符串中不同整数的数目 (简单)
Rationaldmis2022 advanced programming macro program
数据库系统原理与应用教程(010)—— 概念模型与数据模型练习题
H3C HCl MPLS layer 2 dedicated line experiment
数据库系统原理与应用教程(011)—— 关系数据库
How to understand the clothing industry chain and supply chain
An error occurred when vscade tried to create a file in the target directory: access denied [resolved]
5V串口接3.3V单片机串口怎么搞?
【滤波跟踪】基于matlab捷联惯导仿真【含Matlab源码 1935期】
The road to success in R & D efficiency of 1000 person Internet companies
Processing strategy of message queue message loss and repeated message sending
Superscalar processor design yaoyongbin Chapter 10 instruction submission excerpt
Time bomb inside the software: 0-day log4shell is just the tip of the iceberg
[data clustering] realize data clustering analysis based on multiverse optimization DBSCAN with matlab code
Unity 贴图自动匹配材质工具 贴图自动添加到材质球工具 材质球匹配贴图工具 Substance Painter制作的贴图自动匹配材质球工具
Several methods of checking JS to judge empty objects
[filter tracking] strapdown inertial navigation pure inertial navigation solution matlab implementation