HGAME-WEEK1
WEB:Classic Childhood Game
打开后发现是一个界面;玩了一下发现很容易死掉,别提打到第八层了,我连第三层都过不去。
根据之前做题的经验可知游戏类题目的切入点大多都在js界面和进行更改分数;果不其然在调式器找到了我们需要更改的内容
简单除暴的直接进行更改
这个游戏有点小坑,在你进行到一个感觉是封闭的界面时,要记得使用随意门道具才可以通过
WEB:Show Me Your Beauty
本题会对你的文件夹内容进行一个检查,文件夹里面若不是jpg或者gif格式的便无法进行上传
所以我们先写入一句话木马,并且将其后缀改为jpg格式
接着打开代理进行抓包,将后缀改为正常的php格式,发现不行;接下来尝试php3、php4、phtml、pht还是不行,此时想到大小写绕过发现成功
蚁剑上马后很容易就找到了flag
这里有个疑问,就是既然可以传jpg格式的木马上去,那么我可不可以使用分配式文件攻击,传.htaccess或则.user.ini文件将jpg文件解析成php文件进行访问;我在这里试了好久发现都没有办法把此类文件上传;待到wp出来之后看看有没有这种解法
WEB:Become A Member
因为题目说到是有关于HTTP的知识,所以我们先进行抓包然后发送到Repeater进行观察,此时提醒我们需要进行身份验证
此时我们更改User-Agent(创建请求的浏览器和用户代理名称等信息传达给服务器)其实一开始我是想进行修改cookie的,毕竟
题目提示了cookie结果发现不是在cookie那里
code=Vidar这个等号和两个参数让你想到了啥,那不就是cookie中的session和session的值吗,加上去加上去原来提示中的
cookie是在这里发挥了作用
这个就很常见了吧,直接在referer里面添加,之前在极客大挑战中也有遇到
接下来这个也很常见一般有三种方法:X-Forwarded-For、Client-ip、X-Real-IP;尝试了一下发现只有X-Forward-For可以使用
此时要求我们使用json的方式进行登入;这里我们需要了解一下json的格式:{“key”:”value”,”key”:”value”}
然后又要让服务端知道我们传输过去的数据是json格式所以我们添加content-type:application/json;然后在进行传输
数据(这里记得要空出一行不然会把我们传过去的数据默认为请求头,在这里卡了好久属实不应该,怎么给忘了这事了呢)
然后flag就出来啦
WEB:Guess Who I Am
因为还不会写脚本,只能一个一个输入了;等wp出来后在学习一下
Misc:Sign In
直接对aGdhbWV7V2VsY29tZV9Ub19IR0FNRTIwMjMhfQ==进行base64解码就好了
Misc:Where am I
打开后是一道流量分析的题目
因为题目中有说到是上传了一张图片所以,直接对其导出HTTP流便找到了我们要的上传文件
此时浏览内容发现里面藏了一个RAR文件
利用kali中的binwalk帮助我们分离出RAR文件
利用WINRAR帮助我们进行解压时发现文件头已经损坏,此时猜测时伪加密,利用010打开后发现确实是伪加密
此时将24改为20;解压时发现无法解压此时怀疑是binwalk无法成功提取,此时换成kali中的foremost进行文件分离
解压完后发现更改伪加密码还是不行,其实记录上面错误的过程是想提醒自己Wireshark的包还是利用Wirewalk自行导出才不会出问题;此时右键我们要导出的数据,并且以原始数据导出
导出后使用010将上面的部分和下面的部分删除,并且更改伪加密码
然后正常进行解压即可出现一张图片,右键属性便可以找到我们需要的经纬度
Misc:e99p1ant_want_girlfriend
解压之后发现是一张照片
根据提示可知该图片的CRC校验出错;此时有两种情况,一是本来这张图片的CRC值就是错误的,二是本图片的宽和高被修改过;
使用TweakPng打开后确实发现是CRC校验出错,此时使用010打开进行更改CRC值发现并没有出现啥有意义的信息
此时便怀疑是该图片的宽和高被修改过(根据之前遇到的题目一般是高会被修改)
此时利用网上的脚本进行计算正确的宽和高
1 | #!/usr/bin/env python |
此时确实发现是图片的宽和高被修改过
此时利用010打开后根据计算出的值进行修改高度,此时便可以得出flag
Misc:神秘的海报
解压后是一张图片,查看属性发现没有有意义的信息,接着使用010打开和记事本打开也没有啥有用的信息;接下来以为藏在右下角的那两个二维码里面;结果发现扫不出来,接下来使用Stegsolve打开,先查看File Format发现还是没有啥有价值的信息
接下来看看是不是LSB隐写,果然发现了提示和前一半的flag
我把它提取出来后大致是这样
下载音频之后,因为根据提示出题人使用Steghide进行加密,且密码是六位数;此时我们可以考虑使用Stegseek进行爆破,
此时可以打开文件夹进行查看
也可以再次通过Stehide进行解密,密码就是我们上面爆破出来的那个
其实这题并没有我所写的这么顺利;我一直以为出题人在音频之中隐藏了密码,然后找了好久都没有找到;后面进行百度之后才知道使用Steghide进行加密的文件可以通过Stegseek进行爆破,并且Stegseek是一个非常强大的爆破工具;这里体现了信息检索的重要性。
Crypto:RSA
此时发现题目给出公钥(e,n)和密文c;此时我们已知量为e、n、c;而我们的目标时求明文m;此时我们根据解密的规则,先求幂
在取余的思路;可知c^d mod(n)=m;所以此时我们需要知道d;而根据模反元素的定义,ed mod(φ(n))=1;可知我们又需要知道
φ(n);而φ(n)来源于两个互质的数的积φ(n)=p * q;所以我们的思路已经很明确了,先将p、q的值算出来;那么便可以利用脚
本进行计算;而本题的难点也就在如何将p、q算出;因为本题给出的n太过于大;所以我们无法使用yafu进行破解;这里有两个思路;
思路1:利用在线网站https://factordb.com 进行分解
分解之后我们就已经知道p、q、e、c那么就可以套脚本进行计算(因为还不会写脚本,就只能网上找了)
1 | import gmpy2 |
方法二:有时候可能会出现无法在https://factordb.com 找到相应的p、q;因为该网站是把我们有解出的n进行一个统计并
存储下来;所以我们此时就要借助另一个工具RsaCtfTool帮助我们进行一个暴力破解
然后利用此命令进行一个破解
1 | python RsaCtfTool.py -n 135127138348299757374196447062640858416920350098320099993115949719051354213545596643216739555453946196078110834726375475981791223069451364024181952818056802089567064926510294124594174478123216516600368334763849206942942824711531334239106807454086389211139153023662266125937481669520771879355089997671125020789 -e 65537 --uncipher 110674792674017748243232351185896019660434718342001686906527789876264976328686134101972125493938434992787002915562500475480693297360867681000092725583284616353543422388489208114545007138606543678040798651836027433383282177081034151589935024292017207209056829250152219183518400364871109559825679273502274955582 |
Crypto:神秘的电话
这题最后还是没有解出来,因为之前除了签到杯以外都没有接触过密码;所以感觉有点陌生;不过还是把思路写一下吧
题目中给的音频已经说是莫斯密码了,那就先解出来看看;
接下来对给出的字符串再次进行解码,试了试,后面发现是base64的加密;
根据提示发现是18层的栅栏加密;此时我们对莫斯密码进行十八层的栅栏解密
此时在这个字符串中看到了分开的HGAME字母,此时猜测是被打乱了先猜测是凯撒密码;可是发现因为凯撒密码不需要密钥;所以此时猜测是维吉尼亚密码;但是后面一直没有密钥的思路,这题就卡住了;等wp出来在看看吧,我也不知道自己的思路对不对,今后还是要多少了解一下基础的密码。