NISACTF 2022-easyssrf
文件包含概念介绍
FIle协议也叫本地文件传输协议 ,主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样,基本的格式如下:file:///文件路径。
FTP是文件传输协议,可以用于互联网上。例如,你有一个网站,放在某个服务器上,可以通过FTP来访问服务器上的文件。
http协议是HyperText Transfer Protocol,即超文本传送协议的缩写。是用来从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议来传输数据。
URL中为什么本地文件file后面跟三个斜杠, http等协议跟两个斜杠?
因为URL结构是: <协议>://<主机>:<端口>/<路径>
如果有主机,前面是要加 // 的,因此对于 http等这些网络地址是http://127.0.0.1:5500/bigwatermelon/index.html
如果是文件,文件没有主机,所以中间的部分就不要了,就变成了file:///D:/mywebproject/bigwatermelon/index.html
浏览 ...
phpadmin 4.8.1远程文件包含漏洞
知识点
phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。其index.php中存在一处文件包含逻辑,通过二次编码即可绕过检查,造成远程文件包含漏洞
过程
存在robots.txt,里面是phpinfo.php,没什么用
使用dirsearch我没有扫出来(人家扫出来了)
扫的结果是phpmyadmin(小写)phpmyadmin4.8.0-4.8.1存在文件包含漏洞
问题就出现在了 /index.php
找到55~63行
(LFI)第61行出现了 include $_REQUEST[‘target’];
很明显这是LFI(PHP 本地文件包含漏洞)的前兆,我们只要绕过55~59的限制就行
第57行限制 target 参数不能以index开头
第58行限制 target 参数不能出现在 $target_blacklist 内
找到 $target_blacklist 的定义:
就在 /index.php 的第50行
只要 target 参数不是 import.php 或 export.php 就行,最后一个限制是Core::checkPageValid ...
永恒之蓝-Eternal Blue复现
永恒之蓝介绍什么是永恒之蓝
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
这里说到了SMB,那么SMB协议又是什么呢?
SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。
一、复现环境
攻击机信息kaliip:192.168.1.30
靶机信息Windows 7 and Server 2008 R2 (x64)ip:192.168.1.33
复现过 ...
记录VScode配置C/C++环境
软件安装
这里略过VScode和MinGW-W64 GCC-8.1.0的安装过程,只说一下注意事项
安装注意
图中另有大哥做出了解释,经过几次尝试,最终配置成功的版本是上图第二个(不过区别不大)Visual Studio Code官网下载路径MinGW-W64 GCC-8.1.0官网下载路径MinGW-W64 GCC-8.1.0的安装路径需要记清楚,后续配置要用到
配置系统环境变量win+q系统环境变量中,添加环境变量path(MinGW-W64 GCC-8.1.0的安装路径)
我的路径是:D:\vscode\MyVsTool\CEdit\MinGWIns\mingw64\bin
检查是否配置成功
cmd中输入gcc -v
VScode配置C/C++环境
下载C/C++插件
创建一个要用来运行C代码的文件夹,命名为.vscode(配置相关文件,不要省略.)
在.vscode文件夹下创建三个文件c_cpp_properties.json、launch.json、tasks.json
c_cpp_properties.json路径需要修改
{
"c ...
Dest0g3 520迎新赛
phpdest知识点
软连接绕过require_once 不能重复包含文件的限制
PHP_SESSION_UPLOAD_PROGRESS文件包含(条件竞争)
题目给了源码:
<?php
highlight_file(__FILE__);
require_once 'flag.php';
if(isset($_GET['file'])) {
require_once($_GET['file']);
}
require_once函数。它与require一样都是包含函数,作用和语法也基本相同,唯一的区别就是php会检查该文件是否已经被包含过,如果该文件被包含过,则不会再次包含
flag在flag.php中,但是在开头已经包含过一次了
思路就是,绕过这个require_once包含一次的限制,使用PHP伪协议去读取文件源码
如何绕过呢?
php最新版的小提示
require_once包含的软连接层数较多时,once 的 hash 匹配会直接失效造成重复包含。
软链接是什么?也被称为符号链接。存放另一个文件的路径的形式存在,可以对一个 ...
BUU刷题记9
知识点
Apache SSI(shtml)远程命令执行漏洞
BP抓包得到两个post参数username=a&password=a
结合题目EasySearch,使用dirsearch扫描
扫描到后台后swp文件泄露,访问一下得到源码
源码:
<?php
ob_start(); //打开缓冲区
function get_hash(){
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-';//没有用到
$random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times //生成5个随机字符
$content = uniqid().$random; //生成一个此随机数的唯一ID
retu ...
BUU刷题记8
[ASIS 2019]Unicorn shop开局尝试输入ID和Price购买
发现除了ID为4其他的ID都会提示:
如果输入ID为4,Price小于1337,会提示钱不够
但是如果我们输入足够的Price,会提示
如果我们上面参数都不输入直接提交,会出现报错
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/tornado/web.py", line 1541, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "/app/sshop/views/Shop.py", line 34, in post
unicodedata.numeric(price)
TypeError: need a single Unicode character as parameter
我们注意到unicodedata.numeric(price)TypeError: need ...
BUU刷题记7
[BUUCTF 2018]Online Tool题目给出源码:
<?php
include("flag.php");
if(!isset($_GET['host'])){
highlight_file(__FILE__);
}else{
$host =(string)$_GET['host'];
$host=escapeshellarg($host); #作出过滤但是可以绕过
$host=escapeshellcmd($host); #逃逸出'
$sandbox = md5("box".$_SERVER['REMOTE_ADDR']);
echo "you are in sandbox: ".$sandbox."<br/>";
@mkdir($sandbox);
chdir($sandbox);
echo "<pre>";
echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
echo "</pre>";
}
?>
以GET方法传递参数值给变量h ...
BUU刷题记6
[RoarCTF 2019]Easy Java题目环境help的页面中存在一个filename参数的GET传参,可能存在文件下载漏洞尝试一下:
试用POST方式来进行请求,发现可以下载文件题目既然是与java相关的,之前了解到WEB-INF/web.xml文件泄露
漏洞成因:通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好 ...
BUU刷题记-网鼎杯专栏2
[网鼎杯 2018]Comment知识点:
网站目录扫描
.git文件泄露
GitHacker文件使用
addslashes()、二次注入 漏洞
gbk编码导致的宽字节注入漏洞
/var/www/html 为网站根目录
.git文件泄露——> kali中修复文件:到生成文件的目录:git log --relog得到继续:git reset --hard e5b2a2443c2b6d395d06960123142bc91123148c
利用文件的读取load_file()函数
原理:
两个功能模块,一个是发帖,另一个是评论,两个功能。两个地方都利用到了***addslash进行转义***,但是都仅仅对于输入进行转义,对于输出没有进行转义,这就有可能造成二次注入,在mysql中,addslash添加的反斜杠是能够起作用的,即\'在表里面value值就是'的意义,那么我们拿出来的时候就可以进行闭合了。
Payload:',content=user(),/*
',content=(select(load_file(&quo ...