CTFshow php特性
web 8912345678910111213141516<?phpinclude("flag.php");highlight_file(__FILE__);if(isset($_GET['num'])){ $num = $_GET['num']; if(preg_match("/[0-9]/", $num)){ die("no no no!"); } if(intval($num)){ echo $flag; }}?>
intval函数(获取变量的整数型):如果他的值为一个数组,只要数组里面有值,那么不论值的数量,返回值都为1,空数组则返回0
preg_match() 函数
利用数组绕过正则匹配,使其返回值发生错误而为false
payload:?num[]=1
web 901234567891011121314include("flag.php ...
CTFshow文件包含
web 7812345678 <?phpif(isset($_GET['file'])){ $file = $_GET['file']; include($file);}else{ highlight_file(__FILE__);}
一.题目分析:简单的文件包含,没有任何过滤,直接使用伪协议读就行。
二.解题思路:playload:
1?file=php://filter/read=convert.base64-encode/resource=flag.php
web 79123456789 <?phpif(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); include($file);}else{ hig ...
whatweb使用教程
常规扫描:1whatweb 域名
批量扫描:我们可以通过将很多要扫描的域名放在文件内,然后扫描时指定该文件即可。
1whatweb -i /root/target.txt
详细回显扫描:1whatweb -v 域名
强度扫描等级控制:whatweb有一个-aggression(简写为-a)参数,此参数后边可以跟数字1-4,分别对应4个不同的等级。
stealthy 每个目标发送一次http请求,并且会跟随重定向
unused 不可用(从2011年开始,此参数就是在开发状态
aggressive 每个目标发送少量的http请求,这些请求时根据参数为1时结果确定的
heavy 每个目标会发送大量的http请求,会去尝试每一个插件
whatweb -a 等级 域名 (可以和-v参数结合使用
快速本地扫描(扫描内网主机):1whatweb --no-errors -t 255 内网网段 (可以和-a和-v参数结合使用
将扫描结果导出至文件内:1whatweb http://www.baidu.com --log-xml=baidu.xml
12345678--lo ...
渗透测试
渗透测试之信息收集一 .收集域名信息1.Whois查询kali:
1whois 域名
爱站工具网:http://whois.aizhan.com
站长之家:http://whois.chinaz.com
VirusTotal: http://www.virustotal.com
2.备案信息查询
ICP备案查询网:http://www.beianbeian.com
天眼查:http://www.tianyancha.com
二.收集敏感信息Google 语法:
关键字
说 明
site
指定域名
inurl
URL中存在关键字的网页
intext
网页正文中存在的关键字
filetype
指定文件类型
intitle
网页标题中的关键字
link
link:baidu.com即表示返回所有和baidu.com做了链接的URL
info
查找指定站点的一些基本信息
cache
搜索Google里关于某些内容的缓存
也可以通过乌云漏洞列表查询历史漏洞信息:https://wy.zone.ci/b ...
kali子系统配置
准备:
在设置中开启开发人员模式:设置-windows更新-开发者选项-打开开发人员模式
设置搜索并打开控制面板-程序-启用或关闭windows功能-勾选适用于linux的windows系统-确定
由于本机是专业版所以需要另外勾选Hyper-v
安装:
搜索或打开microsoft store(微软应用商店) 注:关闭自动更新后将不能使用,如需使用请开启检查更新
搜索kali linux下载
启动并设置密码
移动系统:
使用LxRunOffline https://github.com/DDoSolitary/LxRunOffline
在releases 里面下载最新版,如不能下载可以评论会转到阿里网盘
cd 到解压目录
1cd D:\lx
显示已安装系统
1.\LxRunOffline.exe list
将系统迁移到D:\kali
1.\LxRunOffline.exe move -n kali-linux -d D:\kali
查看是否迁移成功
1.\LxRunOffline.exe get-dir -n kali-linux
关于LxRunOffline的更多使用方法可 ...
docker 命令
启动容器
启动容器并启动bash(交互方式):
1$docker run -i -t <image_name/continar_id> /bin/bash
启动容器以后台方式运行(更通用的方式):
1$docker run -d -it image_name
ps:这里的 image_name 包含了tag:hello.demo.kdemo:v1.0
附着到容器
附着到正在运行的容器
1docker attach <id、container_name>
进入正在运行的容器内部,同时运行bash(比attach更好用)
1docker exec -t -i <id/container_name> /bin/bash
ps:docker exec是如此的有用,以至于我们通常是将其封装为一个脚本,放到全局可调用的地方,比如,可以写成一个indocker.sh:
12345678$cat indocker.sh docker exec -t -i $1 /bin/bash# 查看需要附着的容器id$docker ps | less - ...
WSL2 docker 配置
先决条件:
确保计算机运行的是 Windows 10(已更新到版本 2004 的内部版本 18362 或更高版本)。
安装 WSL,并为在 WSL 2 中运行的 Linux 发行版设置用户名和密码。
123WSL 可以在 WSL 版本 1 或 WSL 2 模式下运行发行版。 可通过打开 PowerShell 并输入以下内容进行检查:`wsl -l -v`。 通过输入 `wsl --set-version <distro> 2`,确保发行版设置为使用 WSL 2。 将 `<distro>` 替换为发行版名称(例如 Ubuntu 18.04)。在 WSL 版本 1 中,由于 Windows 和 Linux 之间的根本差异,Docker 引擎无法直接在 WSL 内运行,因此 Docker 团队使用 Hyper-V VM 和 LinuxKit 开发了一个替代解决方案。 但是,由于 WSL 2 现在在具有完整系统调用容量的 Linux 内核上运行,因此 Docker 可以在 WSL 2 中完全运行。 这意味着 Linux 容器可以在没有模拟的情况下以本机方式 ...
CTFshow web 命令执行
web 29123456789101112131415 <?php error_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); //eval() 函数把字符串按照 PHP 代码来计算。} }else{ highlight_file(__FILE__);}
一.分析代码: if(!preg_match("/flag/i", $c))
preg_match 函数用于执行一个正则表达式。/i意味着不区分大小写。这句话的含义是不能使用flag而且忽略了大小写,这句话过滤了flag
二.解题过程:方法一:传入
?c=echo "a"?><?php system("ls");
可以发现有flag.php,结合伪协议 ...
ctfshow web入门 爆破
web21我们随便输入并使用bs抓包得
通过对这串进行base64解码得此处就是我们输入的账号与密码,形式为:账号:密码
我们使用BS中的测试器模块
开始攻击
得到flag
web 22现在子域名无法爆破出来,直接查看hint得到flag
web 23分析源码,我们可以知道token首先被md5进行加密,而且它的第一位=第14位=第17位,(第一位+第十四位+第十七位)/第一位=第三十一位
1234567891011121314151617<?phperror_reporting(0);include('flag.php');if(isset($_GET['token'])){ $token = md5($_GET['token']); if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){ if((intval ...
CTFshow-信息收集
web 1直接查看源代码即可得到flag
web2本题禁用了右键和f12,通过Ctrl+u或者在url前面添加view-source:也可获得flag
web3 响应头右键查看源代码 ,什么都没有发现,直接抓包,在响应包中发现flag
web4 robots.txt访问robots.txt发现/flagishere.txt。访问flagishere.txt得到flag.
web5 index.phps访问index.phps得到flag
phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。
它的MIME类型为:text/html, application/x-httpd-php-source, application/x-httpd-php3-source。
web6 www.zip尝试一下常见的源码包名字www.zip,即可下载压缩包,在压缩包中发现flag,但提 ...
Linux编译环境配置
Linux下的编译环境配置C/C++环境配置C编译环境的配置1apt-get install gcc
执行结束后我们可以查看版本
1gcc --version
使用1gcc --h
可以查看该命令的所有操作
接下来我们写一个HelloWorld.c并编译运行。
vim HelloWorld.c
#include<stdio.h>int main(void)
{printf(“Hello World!\n”);}
保存好后进行编译
gcc HelloWorld.c -o HelloWolrd
编译成功后运行
./HelloWorld
C++编译环境配置1apt-get install g++
查看版本
1g++ --version
使用
1g++ --h
查看该命令的所有操作
然后接下来我们用C++写一个HelloWorld.cpp
vim HelloWorld.cpp
#includeusing namespace std;int main(void){cout<<”Hello World!”<<endl;}
g++ HelloWorld ...