gdb常用命令及格式化字符串漏洞

一、gdb命令

set args

break

b(break) 1.c:6  在1.c文件的第6行设置断点

b(break) func        printf也算一个func??

b 地址

info

显示各种信息的

info all-register

info line main

x

很好用,可以查看各种变量包括寄存器栈(rbp)里面的变量等

https://www.cnblogs.com/adamwong/p/10538019.html

二、格式化字符串漏洞

https://www.dazhuanlan.com/2019/12/27/5e04fdef7abf3/?__cf_chl_jschl_tk__=482074d41e363ddde51046469a67f0469fb6d916-1591701686-0-AXIxk_o_up4RDQRhwuRO02FVzY5MVUXR9_6yuK3mbgUzrt2GGdadKzvSaK9UftjQ2C4VwgC1oPdwKqxBk7Q6Fe2glmVhfzG6gwcQjteeMpD3JGNYcFUJoWftFo1aSkeOIFNkkP4cLC4RYEpubO5n3iA03eP3xrnTAOxx5I-68JInRpkbUkrTk6KHm6v6IgnzYWM4XqyLXFUxR-jdDIFMw3yzASrYNWe47m4Z9YtBDUEMgLik9Fp3D_vN5oVsRq9fFLAcX1R2LkyfwconDR02aZKg9TZHJHym5B1SdQLIMafRcCz7Sv1f_cM1GdzCLmH0hw

emmm,主要有%n,%k$的利用以及利用gdb查看变量位于printf的第几个参数(加了-m32(作用是指针啥的都是32位)的,printf输出的那个值一般都位于第6个吧)

全局变量的地址可以直接通过objdump -t 程序找到,程序编译的时候可加个参数-no-pie(反正最直接的就是可以看到使用objdump -t看地址的时候只能看到低4位)

posted @ 2020-06-09 21:21  dx670  阅读(495)  评论(0编辑  收藏  举报