web:nss靶场ez_ez_php
打开环境,理解代码

使用个体传参的方法,首先代码会检查file参数的前三个字符是不是php,如果是就输出nice,然后用include函数包含file,绕过不是则输出hacker,如果没有file字样就用highlight_file(__FILE__);
以语法高亮的形式显示当前文件的内容。
题目的类型是php伪协议,不妨试一下昨天的查看方式,结果提示是这样的

首先flag?file=php://filter/convert.base64-encode/resource=flag.php;file=后面加上php是没错的,因为要是的include包含file,才能绕过验证和过滤,不然它设置这个代码就没意义了,要不然就是起一个迷惑的作用,单纯输出字符串的话,无论是nice,还是hacker都对我们没有用。
难道是要用其他的伪协议命令吗,尝试一下结果是一样的

后面仔细阅读了一下这个提示才知道我们要读取的文件不是flag.php,或者是不是我们命令的问题,而是flag.php这个文件读取出来就是这样子,我们要读取的文件提示已经给了就是flag。

删掉后缀就可以读取的到了。
pwn:nss靶场PWN1
查壳,ida打开

查看伪代码

大致理解一下,将v2的初值定义为0.0,把我们输入的内容给v1,如果v2与后面那个数字相等的话就执行cat /flag,就是获取flag,如果不是就输出下面那个字符串,其实就是给的提示,但无论我们输入什么都是gev1,所以说都不会给出flag。
那么可以把v1的值覆盖到v2,从而输出flag,那么就要算v1,v2的距离了,找了一篇wp,他是怎么算的,首先找一下v1,v2到rbp的距离,直接追踪变量就可以了

分别是v1和v2,所以两者的距离就是0x30-0x04,两个都是十六进制,可以不用转换,后面的字符串不应该是地址吗,为什么他说的是11.28125转十六进制的字符串?这个其实用之前做题用的脚本就可以了

misc:polar靶场二维码
解压得到的图片是破损的,010打开开头有提示的字符串

之前题目其实有涉及过base64转换的,那个要一个密钥,这题没有直接转换

一开始是这样,美化一下,扫码即可

crypto:polar靶场天干地支
打开文本给了一串天干地支的纪年,找一下对照表解密一下

再加上一甲子60年


之后应该就是ASCII转字符了,写个脚本就可以

reverse:polar靶场babyre
查壳,ida打开

这题伪代码复杂到我以为是有壳没去掉,找了很久才找到主要的加密函数,不过看着也很杂,其实大部分的字符都是迷惑的而已,主要的就是那个v3+=2,那么结果就有两种,无非就是我们输入的每个字符串的ASCII值加2再与系统设定的字符串对比,或者是系统的字符串的ASCII值加2再与我们输入的字符串对比,找一下加密后的字符串再逆运算一下


写个脚本,加减都试一下就可以了
