原创 requests模塊總結

get 先導入模塊 import requests rep=requests.get(url) 返回一個對象可調用的常用方法有 rep.text//返回網頁的字符串文本會有編碼問題 rep.content//返回訪問的二進制文件

原创 de1ctf_2019_weapon

這題我多了一個換行搞了老久了服了還是tcl 思路 有uaf通過寫IO來得到libc地址然後通過double free來拿到shell exp: #!/usr/bin/python2 from pwn import * p=0 de

原创 5月份36dctf

exec_comm.constprop+1162kaishell PWN_MengxinStack 棧不會了orz 就是基本的棧溢出操控libc_start_main這個函數來控制程序流程需要將返回地址爆破到libc_start_

原创 x_nuca_2018_0gadget

思路 在bss段上有構造uaf然後劫持got表即可 exp: #!/usr/bin/python2 from pwn import * def pwn(): #p=process('./X-nuca_2018_0gadget')

原创 2020安恆4月賽pwn(看看還能不能更)

orz沒趕上回家已經5點半了就回顧了一下pwn題 挺好的出的(遠程可能爲ubuntu18)我這用的是ubuntu16 思路 就是uaf控制好堆塊然後寫到got表leaklibc然後再次做一次寫free爲system即可 exp:

原创 NPUCTF pwn

題目質量很高萌新直接自閉 z這2道題都挺基礎的 easy_heap exp: off by one 造成了任意地址寫的漏洞 #!/usr/bin/python2 from pwn import * p=0 def pwn():

原创 ciscn_2019_sw_7

思路 堆溢出orztcache不要全部寫壞不然難搞 exp: #!/usr/bin/python2 from pwn import * p=0 def pwn(ip,port,debug): global p if debug

原创 ciscn_2019_sw_1

思路 通過格式化字符串是程序無限循環(__do_global_dtors_aux_fini_array_entry內存的地址寫成main函數地址) 我們是通過libc_start_main調用main函數不管是在man函數調用前後

原创 ciscn_2019_es_4

思路 先unlink將地址key寫好然後做一次off by one在tcache attack就行了 exp: #!/usr/bin/python2 from pwn import * #p=process('./ciscn_20

原创 新春戰疫公益賽(二)pwn

第一天和第三天直接被爆錘 自己已經盡力了 武漢加油!!! borrowstack 就是基本的棧遷移 exp: from pwn import * from LibcSearcher import * #p=process('./b

原创 hg2020 pwn

打了我就記錄一下 (有點記不太清了有點久了~~) Annevi 這道題是做2次unlink然後寫got表即可 #!/usr/bin/python2 from pwn import * local=0 if local==1: p

原创 某入羣題

不好講就是入羣題 exp: #! /usr/bin/python2 from pwn import * from LibcSearcher import * local=0 if local==1: p=process('../

原创 X-nuca_2018_offbyone2

思路 off by null構造堆重疊然這裏的堆塊個數充足直接打2次第一次leak libc基址 再次佈置好堆塊然後打free_hook拿到shell exp: from pwn import * #p=process('./X

原创 buuctf warmup

函數很少我們需要控制寄存器的值來執行內核調用(int 80) 思路 先將字符串/bin/sh寫入程序32位的程序用棧傳遞參數所以我們有充足的空間進行ROP然後跳回程序開始然後將再次讀入/bin/sh然後控制好寄存器的值即打開exe

原创 nsctf_online_2019_pwn2

思路 先是用leaklibc地址然後fastbin attack打malloc_hook即可 exp: #!/usr/bin/python2 from pwn import * local=1 if local==1: p=pr