pwnable.kr---mistake,shellshock,coin1

pwnable.kr—mistake,shellshock,coin1

这三个题目基本主要思路还是看别人的writeup,所以就主要总结自己的收获吧。

解题思路

coin1

shellshock

mistake

遇到的问题

1.做coin1的时候怕是个智障,抄别人的代码都能抄错,在给服务器发送数据的时候,数据后边没有”\r\n”,服务器无法正确识别每次客户端发送的数据,所以……GG

2.做shellshock的时候,我自己先了解了一下setresuid和setresgid,曾以为这道题目可能会和linux权限有关系……GG

收获

1.socket通信,python版客户端主要函数:

HOST='0'    #如果是localhost
PORT=9007   #记得是整数,不加引号
ADDR=(HOST,PORT)
clientSocket=socket(AF_INET,SOCK_STREAM)
clientSocket.connect(ADDR)
clientSocket.recv(BUFSIZE)
clientSocket.send(data)

2.python正则表达特殊字符含义

^:匹配字符串的开头

$:匹配字符串的末尾

*:匹配0个或多个表达式

\s:匹配任意空白字符;等价于[\t\b\r\f]

3.’\r\n’:\r表示回车(光标回到当前行的起始位置);\n表示换行;如果只有\r的话,后边的内容会覆盖前边的

4.linux终端下复制:ctrl+alt+c;粘贴:ctrl+alt+v;vi中单行删除:esc->:1(待删除行)d;vi中多行删除:esc->1,10d

5.python中str.append()参数应当是Str类型,记得类型匹配

6.在安装python3的时候遇到的知识点:.configure+make+make install。

./configure生成makefile文件,可以通过添加参数(./configure -prefix=/usr,此时执行文件在/usr/bin,资源文件在/usr/share)将软件安装在指定目录下,否则会默认子/usr/local/bin。

make编译(大多数源代码包使用)

make install安装,有些需要先make check

linux下安装应用程序:脚本./configure生成makefile—make编译—make install—make clean

7.setresuid()被执行的条件有:

当前进程的euid是root

三个参数每一个都等于原来id的某一个

setresuid和setresgid的含义分别是:设置real-uid/efficient-uid/saved-uid、设置real-gid/efficient-gid/saved-gid

8.UNIX下SUID和SGID的解析:

文件描述符共10位:9/8/7/6/5/4/3/2/1/0

其中9为文件类型:p命名管道文件;d目录文件;l符号连接文件;s-socket文件;c字符设备文件;b块设备文件;-普通文件

8-6文件所有者权限(r,w,x)

5-3同组用户权限(r,w,x)

2-0其他用户权限(r,w,x)

文件设置SUID/SGID分别表现在文件所有者或同族用户的权限的可执行位(6/3)

9.程序运行时由内核确定进程对资源的访问权限;内核主要根据euid和egid来确定进程对资源访问。

SUID让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

10.shellshock:

hacker:export X=’ () { echo ” inside X ” ; } ; echo “outside X”; ‘

env:X= () { echo ” inside X ” ; } ; echo “outside X”;

bash:产生一个bash子进程—读取father’s all exported environmental variable , copy到自己的进程空间—注入命令echo “outside X”

仍存在的疑惑

1.env的使用过程中

first: env VAR=’ (){:;};echo bash is vulnerable ’ bash -c “echo bash test”

second:首先env VAR=’ (){:;};echo bash is vulnerable ‘;然后bash

为什么first可以输出bash is vulnerable,但是second就不可以?不都是新建了一个子进程吗?

2.问题1如果使用了export就很好……?export与env指令有待深入了解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值