1.16寒假作业
web:[SWPUCTF 2021 新生赛]easyupload3.0
提示传个木马,上传之后蚁剑连接不上,要找一下路径,用bp重放试试看
也是没找到,返回去看题目的标签有一个htaccess文件,了解一下https://blog.csdn.net/m0_73902453/article/details/143365295,可按照这篇博客来试试看,可是传上去,之后连接不上
去看了一下别人的做法,他们htaccess文件的内容不一样
这个htaccess文件的作用就是把jpg文件用php的解析方法解析,图中2.jpg就是要解析的文件,先把htaccess文件上传之后,再上传一个jpg文件,文件内容是一句话木马
上传之后就可以连接了
这里再了解一下htaccess文件:htaccess文件是Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问,禁止目录列表,配置默认文档等功能。
pwn:[GFCTF 2021]where_is_shell
查壳,ida打开
看一下伪代码
读取56个字节给buf,但是buf到rbp的距离只有0x10明显小于56,存在溢出
接下来就是找溢出点地址,计算覆盖的字节量,看了一下wp,发现这题远没有我想的那么浅显。
首先是填充量:0x10是buf距离rbp的长度,同时因为是64位程序,所以要再加上8个字节的数据。
一般的pwn题目要执行system("/bin/sh");就需要找到system的地址、字符串"/bin/sh"的地址,这题在string找不到bin,system地址可以找到,但是这个340不行,因为Ubuntu18及以上版本的系统要求在调用system函数时栈16字节对齐,意思是说在调用system时rsp的值必须为16的倍数(也就是末位为0)改成430就可以了
这里找bin/sh/是在这里找到的,文章里面说的是这里的汇编二进制代码里的 "24 30" (转换成十进制的ASCII码)可以用来表示$0,而$0指代的就是"/bin/sh",所以地址就是0x0400540+1,为什么要加一?
两个都找到了,再看看脚本
后面构造的两个地址是为了在二进制漏洞利用中用于构造 ROP(Return-Oriented Programming)链。ROP具体可以看https://www.cnblogs.com/luoleqi/p/13440684.html
misc:polar靶场无字天书
文件是一个zip压缩包,打不开用010分析一下文件头格式错误
修改一下文件头
解压发现要密码,看一下文件尾有提示
只有AB两个字母组成的,搜索一下也没有相关的加密方式,那么可能是AB都指代某一种字符,已知的有两种要么是二进制的01,要么是摩斯密码,都试一下,是摩斯密码A换成. B换成-,用记事本简单替换一下
解码
解压压缩包,是一个word文档,用之前的办法试了都显示不出来,但是可以看到就在第一行那边,搜索才知道是叫零宽度字符隐写可以用这个网站解决https://330k.github.io/misc_tools/unicode_steganography.html
crypto:polar靶场全世界都在说中国话
打开文件是一串数字,如果按之前的思路首先考虑ascii值转义,但是这题题目和提示明显不是这方面的,搜索一下有没有相关的加密方式,最后得到有一种叫中文电报码的加密
md5加密即可
reverse;polar靶场easycpp2
查壳,ida打开
看一下伪代码,和昨天一样很繁琐
仔细看一下主要的函数是encode
循环,从 i = 0
开始,到 i = 15
结束,共执行 16 次;在每次循环中, 将 flag
数组的第 i
个元素的值增加 3; 将当前的循环变量 i
的值赋给 result;
对 flag
数组的第 i
个元素进行按位异或操作,异或的对象是无符号整数 1。简单来说就是先加3,再和1异或。
追踪一下flag字符
写个脚本
原文地址:https://blog.csdn.net/zl0_00_0/article/details/145188327
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!