此题第一步凑齐7174进入漏洞地点
然后可以把iphone8的结构体中的地址通过read修改为一个.got表地址,这样就能把libc中该函数地址打出来。这是因为read函数并不会在遇到\x00时截断(就是在read字符’y’的时候)。
然后还可以采用同样的办法把libc中的libc.symbols[‘environ’]打出来,这个值存储着当前栈中环境变量所在的位置,因而可以得到栈的位置。
然后具体分析在进入delete之后的情景:
将程序断在delete中的关键位置,此时ebp为0xffac6cc8,而v2的值为0xffac6ca8,即在atoi数字后面的值,因而可以控制v2和v4,v5
然后可以通过这个*(_DWORD *)(v5 + 8) = v4;,把ebp改掉。v5=$ebp-0x8,v4=atoi_got_addr + 0x22,这样在下次handler中就可以向atoi_got中写入system地址了。
新建一个文件夹,然后本地目录里
git init建立一个本地的仓库
将东西pull下来,git pull 那个网址
git config –global user.name yourname,git config –global user.email youremail。然后再配置用户名和邮箱
git add . 将全部加入本地仓库
git commit -m “xxx”
git remote add origin 那个网址
git config credential.helper store
git push origin master
如果遇到:error: failed to push some refs to的错误,
应该是与github上的不同步的问题造成的,可以先git pull origin master,再git push origin master,会累加合并不用担心
另:如果需要再往另一个仓库上传东西,需要先git reset –hard FETCH_HEAD清空本地工作区,否则会Pull is not possible because you have unmerged files.报错
然后先git remote rm origin清除上次的连接再git remote add添加新的连接
如果这一过程中误删了文件,可以通过git fsck –lost-found
找到可能的文件,再通过git show xxxxxxxxxxxxx查看其中的信息,git rebase xxxxxxxxxxxxxx来进行恢复 。
如果遇到 fatal: HttpRequestException encountered.
需要更新Windows的git凭证管理器
https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0
下下来执行即可
git branch v1.0
然后
git push origin v1.0
删除本队分支是先git branch查看分支,再git branch -d xxx删除分支
首先安装Docker CE 在ubantu上,参照https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository一步一步来就可以了 。安装完成后使用docker pull xxx 或者下载好镜像并使用docker load < xxx 把镜像部署到本地,xxx为镜像名。
然后为该镜像创建一个容器,docker run -it –privileged -v /home/path:/home/docker/path -p 8080:80 xxx bash 这样的目的在于将本地的path和该容器进行共享。
docker save ID > xxx.tar
docker load < xxx.tar
docker export ID >xxx.tar
docker import xxx.tar containr:v1
###删除容器和镜像
docker rm ID
docker rmi ID
使用tumx指令来使用tumx,主要是使用分屏功能。使用ctrlB+%增加分屏,使用ctrlB+space切换分屏模式。
docker run出来的虚拟机是拥有不同的虚拟ip的。
然后,可以从宿主机通过docker exec -it bd bash -c ‘cd /home/docker/path && ./1.sh’这样来运行容器中的命令。
使用鼠标需要增加一个~/.tmux.conf的文件,其中内容为set -g mouse on。可以通过nano命令进行查看,这样就能够使用鼠标了。使用鼠标查看过往记录时是用滚轮向上。
查看docker网络环境 docker network ls
使用鼠标进行复制粘贴:选中文字,按住shift再按鼠标右键就能出来菜单了
docker tag container:v1 61355ing/container首先为docker打上tag,
然后使用docker login登录进去,使用docker push 61355ing/container 就能push上去了,下来的时候就是docker pull 61355ing/container
命令 : docker build -f aa_dockerfile .
需要注意的是,这命令的执行中会将该目录下所用文件上传到docker daemon,所以一定要新建一个目录。
不然就会出现如下情况
Sending build context to Docker daemon 15.84GB Error response from daemon: Error processing tar file(exit status 1): write /pwndocker.tar: no space left on device
比如要更改绑定的端口或者是映射的文件夹
docker inspect 897 # 用来查看
cd /var/lib/docker/containers/8973019dbb476fef2a3610da4156ff9a12827f27ddfd9d425ef504c93e1f9baf
这个是docker的完整hash,在inspect里有
在其中有两个json文件,是用来做配置的。
一定要两个文件都改了,就比较稳
然后service docker restart
docker inspect 897 # 再次查看配置是否更改,没更改就再来一遍
docker rmi 2a0,报错image is referenced in multiple repositories
docker rmi contain:v1,出错是因为tag没删掉,这样就能把tag一起删了