本题目关键在于random函数。c语言中rando函数默认情况下第一个数都是一样的,可以计算出:
所以可以通过与
0xdeadbeef 异或即可。
,所以如下图所示即可:
异或之后:
所以提交得到flag:
③思路:打开文件sys_open('/home/orw/flag',0,0),读取文件sys_read(3,flag,0x100),写入标准输出sys_write(1,flag,0x30)。当然也可以用上边所说的,自己写汇编然后用asm生成shellcode,这种比较标准的函数还是建议用shellcraft,比较方便。这里解释一下,0x68732f6e和0x69622f2f组合在一起是hs/nib//,也就是binsh的小端序写法;而0xb,也就是11,是execve的系统调用号。
入门
级题目,保护全关。
pwnable
----fd和collsion
本人是萌新无意间看到这个
pwnable
.
kr
的网站,来学习学习,嘿嘿。这里是链接
这里的一个小tip。由于我用的是Ubuntu18.04版本在用ssh连接时报错,记录一下解决方法。
vim /etc/host
再将
pwnable
.
kr
的IP地址加在后面就行了
ssh链接网址
ssh fd@
pwnable
.
kr
-p2222
输入默认密码...
Daddy, teach me how to use
random
value in programming!
ssh
random
@
pwnable
.
kr
-p2222 (pw:guest)
程序源码如下:
include <stdio.h>
int main(){
unsigned int
random
;
random
= rand(); ...