# week2-水文
week2的部分题目,过年了..没做几道题目
Contents
WEB
LazyDogR4U
存在源码泄露,www.zip下载
分析一下代码逻辑。config.ini里面存储这用户的信息
解了一下md5发现解不出来,看一下判断登陆的逻辑
对输入的密码进行md5加密后对比,testuser的密码进行md5加密后为0e开头的字符,我们可以通过md5的0e漏洞进行绕过登陆,不过我们需要先确定一下flag的获取方式
必须是admin用户才能登陆,那testuser用户就没有用了,主要看一下如何让我们自己成为admin用户,或者让session中的username为admin用户,这里看一下lazy.php
我们可以推测问题就出在lazy.php上了,由于开发人员为了方便,将这几种变量都进行了注册,这样的话我们可以直接通过传参的方式修改这些变量,虽然题目中用了preg_replace()对可疑字符进行替换,但是我们可以用双写的方式进行绕过,传输
_SESSESSIONSION[username]=admin
Liki的生日礼物
这个题目本来是很基础的…但是因为自己浏览器的原因,一直抓不到接口的数据包,导致在盲猜参数,后来调控制台Network才发现一直能看到接口数据包,不过我给隐藏了….太傻逼了
题目思路很简单,给了注册登陆接口,登陆进去后是一个商城
告诉我们只要买52个以上就有flag,遇到商城问题就是汇率转换、整数溢出、条件竞争,本来测试条件竞争的时候没有发现可疑点,后来把线程调大,忽然就能买51个了,直接抓buy接口的包
在爆破模块调大线程后自动跑即可
看一下页面
点击兑换即可获取flag
CRYPTO
WhitegiveRSA
N = 882564595536224140639625987659416029426239230804614613279163
e = 65537
c = 747831491353896780365654517748216624798517769637260742155527
直接给了N、e、c,使用在线网站分解一下N
分解出p、q,直接仿队内密码大手子的博客给脚本套上
import binascii
import gmpy2
n=882564595536224140639625987659416029426239230804614613279163
p=857504083339712752489993810777
q=1029224947942998075080348647219
e=65537
c=747831491353896780365654517748216624798517769637260742155527
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(hex(m))
print(binascii.unhexlify(hex(m)[2:].strip("L")))
MISC
Hallucigenia
拿到图片后,看完没有隐藏文件啥的,用stegsolve看一下
发现存在二维码,扫码获取一下内容
扫码出来是一串base64,解码后发现明文后面像是图片的头,根据题目提示:颠倒了左右前后,猜测我们需要把base64获取到的明文倒序一下,python处理起来比较麻烦,直接用php
php > $str="gmBCrkRORUkAAAAA+jrgsWajaq0BeC3IQhCEIQhCKZw1MxTzSlNKnmJpivW9IHVPrTjvkkuI3sP7bWAEdIHWCbDsGsRkZ9IUJC9AhfZFbpqrmZBtI+ZvptWC/KCPrL0gFeRPOcI2WyqjndfUWlNj+dgWpe1qSTEcdurXzMRAc5EihsEflmIN8RzuguWq61JWRQpSI51/KHHT/6/ztPZJ33SSKbieTa1C5koONbLcf9aYmsVh7RW6p3SpASnUSb3JuSvpUBKxscbyBjiOpOTq8jcdRsx5/IndXw3VgJV6iO1+6jl4gjVpWouViO6ih9ZmybSPkhaqyNUxVXpV5cYU+Xx5sQTfKystDLipmqaMhxIcgvplLqF/LWZzIS5PvwbqOvrSlNHVEYchCEIQISICSZJijwu50rRQHDyUpaF0y///p6FEDCCDFsuW7YFoVEFEST0BAACLgLOrAAAAAggUAAAAtAAAAFJESEkNAAAAChoKDUdOUIk=";
php > echo bin2hex(strrev(base64_decode($str)));
89504e470d0a1a0a0000000d49484452000000b4000000140802000000abb3808b0000013d494441546881ed96cb1683200c44a1a7ffffcb74a1a5943c1c50b4d2b90b8f629249022221104208218711d5d194d2fa3aea06bf4f2e2173662d7fa12e65fa821c12878ca69aa9b80c2d2b2bdf04b1797cf914c6e5557a5531d5c8aa16928fb4c966d687a2ee88958b5a6935827839ea7eed887a9580d50d5fdd89fc79cc461d37f2eae4a48e3806f2c6b1b11250e92bb9c9bd49d42901a974a7ba15ed61c59a98d67fdcb2350e4ae642ad4d9eb8299274df49f6b4f3afffd371287f9d23520a455652ebaae582ee1cf10d62961fc18622917340c4ccd7ea761c31496aeda516d8f963535ad4d79da32a5b36c2394fe41520bdac8fa0fc82d5a66fe6236d9099ab9a6e45f685402f2414d26764c41aecb009d6817404606dfbc3de884b92ef38ad4f7520bdf58a69629e4a534af31433359c29420821841042c82d7801ad6aa366b1e03afa0000000049454e44ae426082
因为base解码后明文存在不可见字符,而且推测是png图片,我们直接转换成16进制字符串,使用010editer导入生成图片
生成逆序的flag图片,再次逆序一下即可获取到flag
DNS
题目比较基础,给提示了一个新的知识,题目名是DNS,我们直接看域名相关的,看了一下HTTP流
告诉我们SPF是解题关键点,百度一下是dns记录类似的,直接找一下域名
根据百度文章所说
我们直接查一下这个域名
成功获取到flag
Telegraph:1601 6639 3459 3134 0892
标注的音频隐写内容
通过Audacity查看波谱图,提示我们850Hz
设定好采样率后,我们可以直接获取到一串摩斯电码,解码即可获取flag