sqctf-web-wp

RceMe

限制了com有存在值并且长度不超过5

payload:nl绕过直接读取

/* 是一个通配符,表示根目录下的所有文件和文件夹。因此,nl /* 尝试对根目录下的所有文件内容进行编号并输出。)

?com=nl /*

命令执行RCE及其绕过详细总结(各情景下的绕过)_命令执行绕过-CSDN博客

 ezGame

 抓包,修改分数flag.php?score=10000

第二种方法,在控制台输入obj.score = 10000;obj.getFlag(); 

Ping

 strpos() 函数用于查找字符串中第一次出现指定子字符串的位置。这里检查 $ip 中是否包含分号 ;  -c 1 表示只发送一个 ICMP Echo 请求包。将用户传入的 ip 地址拼接到命令后面,从而对该 IP 地址进行一次 ping 测试。

 $ip 中不能包含分号,管道符绕过,payload:

?ip=127.0.0.1|cat /flag

使用 127.0.0.1 作为ping的目标地址,是因为它是一个肯定存在且可访问的本地地址,无论本地网络实际连接状态如何,都应该能够成功ping通 

或者

?ip=|cat /flag

Through

目录穿越,双写绕过,payload:

?file=....//....//....///flag

 目录穿越/遍历漏洞 -- 学习笔记_目录遍历漏洞描述-CSDN博客

商师一日游

 查看源码

flag{3

根据这个描述,打开你的终端,构造一块fish牌的曲奇饼,上面刻下strong字样,便可获得强筋壮骨牌鱼食曲奇

 972f

进入终端,在devtool中找到复活币

447a75

  0419d9d

第一次正则表达式使用了多行模式 m,而第二次没有 ,要echo xxxxxxxxxx,即匹配第一个正则,不匹配第二个正则

用%0a换行符绕过,payload:

?hhh=%0aphp

73d0f43d 

手动删除disabled 

 8ea6b

 f} 

最后所有拼在一起flag{3972f447a750419d9d73d0f43d8ea6bf}

My Blog

信息搜集 

目录扫描得到找到登录页面

 \

用给的账号密码登录

 

baby rce

  • $token = false;:初始化一个布尔变量 $token 为 false,用于标记是否通过第一级验证。
  • if(isset($param1) && isset($param2)):检查 $param1 和 $param2 是否都被设置。
  • if(sha1($param1) == sha1($param2)):比较 $param1 和 $param2 的 SHA-1 哈希值。如果相等,则将 $token 设置为 true,并输出 "Level 1 pass"。
  • ublic $person = 20; 和 public $computer_number = 30;:定义类的两个公共属性 $person 和 $computer_number,并分别初始化为 20 和 30。
  • function getNumber():如果 $this->person 被设置,则输出其值。
  • function isFullUse():比较 $this->person 和 $this->computer_number 的值,如果不相等,则输出 "computer is lacking !!!";否则,输出 "computer is enough !!!"。
  • static function getKey():这是一个静态方法,用于包含 flag.php 文件,并输出 "Level 2 pass" 和 $flag 的值。
  • call_user_func($_POST['payload']);:如果通过第一级验证,则调用 $_POST['payload'] 指定的函数。用户需要通过 POST 请求传入一个可调用的函数名,并且该函数需要能够触发 TYctf::getKey() 方法来获取 flag

 使用数组来绕过 SHA-1 哈希比较,因为 sha1() 函数在处理数组时会返回 false,所以 sha1(array()) == sha1(array()) 为 true

 GET:

?param1[]=1&param2[]=2

通过 POST 请求传入 TYctf::getKey 作为 payload 的值,即可触发 getKey() 方法获取 flag

POST:

payload=TYctf::getKey

无参之舞 

随便输入一个账号和密码进行爆破,得到了他的账号是sqctf 接着爆破密码

 得到它的username=sqctf

password=1q2w3e4r   登录

payload:

var_dump(scandir('.'));    .表示当前目录
readfile('f1ag.php');

 

 查看源码

eeaassyy 

 右键被禁用,打开开发人员工具,查看源代码

 Are you from SQNU?

按下按钮可以看到参数tyctf,然后这个参数post随便传,然后再根据提示一步步写

 

把Referer改成https://sqnu-tysec.com

把User-Agent改为TYsecBrowser

添加 X-Forwarded-For: 127.0.0.1

把Cookie改为 user=admin,得到flag

 File_download

题目提示xml,我们访问WEB-INF/web.xmlWEB-INF/web.xml泄露漏洞及其利用_web-inf-web-xml-disclosure-CSDN博客

 打开这个文件

filename=WEB-INF/classes/com/ctf/flag/FlagManager.class

 把这个.class文件放到JAVA反向工程网上去java反编译,得到java文件

然后解密

key = [110, 107, 185, 183, 183, 186, 103, 185, 99, 105, 105, 187, 105, 99, 102, 184, 185, 103, 99, 108, 186, 107, 187, 99, 183, 109, 105, 184, 102, 106, 106, 188, 109, 186, 111, 188]

flag = []
for k in key:
    # 逆向运算: c = (k ^ 48) - ord('&')
    c = (k ^ 48) - ord('&')
    flag.append(chr(c))

print(''.join(flag))

#85caad1c-33e3-0bc1-6d5e-a73b044f7d9f

### 关于Cursor机器码的限制 在编程环境中,“cursor”通常指的是光标的定位和操作,而并非直接关联到低级的机器码层面。然而,在某些特定场景下,比如嵌入式开发或是操作系统内核编写时,确实会涉及到通过机器指令来控制硬件级别的光标。 对于机器码中的光标处理主要存在以下几个方面的局限: - **地址空间有限**:由于早期计算机体系结构的设计原因,用于表示屏幕坐标的寄存器位数较少,这使得能够表达的最大坐标范围受到严格限制[^1]。 - **效率问题**:频繁更新光标位置可能会导致性能下降,尤其是在资源受限设备上。每次移动都需要重新计算并刷新显示缓冲区的内容,增加了CPU负担[^2]。 - **兼容性挑战**:不同类型的终端或显示器可能采用不同的协议去解释相同的机器命令序列,这就造成了跨平台移植上的困难。 ```assembly ; 假设这是一个简单的汇编程序片段用来设置文本模式下的光标位置 mov ah, 02h ; 设置功能号为AH=02H (BIOS中断调用) mov bh, 00h ; 页面编号BH=0(默认页面) mov dh, row ; DH=row 行号 mov dl, col ; DL=col 列号 int 10h ; 执行视频服务INT 10H ``` 上述代码展示了如何利用BIOS中断服务来改变DOS环境下文本模式下的光标位置。需要注意的是这种做法依赖具体的硬件环境和支持情况,并不具备良好的通用性和可移植性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值