upload-labs
pass01 前端js绕过上传php一句话木马,我们发现这里只能上传jpg,png,gif类型的文件从代码不难看出这是JavaScript代码,禁用JavaScript,尝试上传这一关也可以上传jpg后缀的一句话木马,通过前端验证后抓包修改上传的文件名后缀
pass02 content-type绕过打开源码发现后端对数据包中的Content-Type进行了验证,那我们抓包修改数据包中的此项为可以验证成功的类别(image/jpeg、image/png、image/gif)即可上传php文件抓包修改文件类型上传成功
pass03 特殊后缀绕过这一关不能上传.asp,.aspx,.php,.jsp后缀文件但在某些特定环境中某些特殊后缀仍会被当作php文件解析 php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml。这里尝试php3后缀,可以直接上传
pass04 .htaccess绕过这一关过滤了很多后缀,但是没有对.htaccess进行过滤
1234.htaccess是一个纯文本文件,它里面存放着Apache服务器配 ...
CTFHub-RCE
eval执行从源代码来看,这里就是直接eval输出request请求的cmd命令那我们直接查看目录?cmd=system("ls");这里并没有发现有用的东西,我们访问前一级目录,?cmd=system("ls%20/");发现flag_15266,?cmd=system("cat%20/flag_15266");
文件包含从源码发现这里有一个file参数,且这里有一个shell.txt。strpos 函数返回查找到的子字符串的下标。如果字符串开头就是我们要搜索的目标,则返回下标 0 ;如果搜索不到,则返回 false 。在这道题目中,开发者只考虑到 strpos 函数返回 false 的情况,却忽略了匹配到的字符在首位时会返回 0 的情况,因为 false和 0 的取反均为 true 。 这样我们就可以在用户名和密码首字符注入 < 符号,从而注入xml数据。那我们让file=shell.txt点开链接发现shell内容,这里能够传入ctfhub参数的值用hackerbar编写ctfhub内容并传入,查看目录查 ...
Xss-labs
Xss-labs其他文章总结的xss绕过姿势:xss 常用标签及绕过姿势总结
level1打开源码发现,这关是要我们调用alert函数,这里重写了alert方法,当我们调用alert函数,就会显示”完成得不错“的弹窗,并跳转第二关从URL中能够获取到name信息,那我们对name进行构造,payload如下?name=<script>alert(%271%27)</script>或?name=<img src=1 onerror=alert()>或?name=<a href=javascript:alert()>1</a>或?name=<img src=1 onclick=alert()>方法各式各样
level2我们按照level1的方法测试,发现并不能渲染,我的输入被当作字符串处理了打开源码发现输入框的value会存储我们输入的值,那我们可以在这进行构造,闭合value的双引号。我们输入">发现他会显示在输入框外面,打开源码发现此时value提前闭合既然">能逃逸在外面,那我们可 ...
Sqli-labs
less1判断id是字符型还是数字型,由下图可得sql为字符型,由单引号包裹下面我们爆列数,可知列数为3下面我们爆回显位置,可知回显位置为2和3下面我们利用这两个回显位查询数据库信息下面我们查询数据库security中所有表下面我们查询users表中所有列下main我们查询users表中所有的username、password对,并用~连接输出
less-2判断id是字符型还是数字型,这里易知是数字型,其他操作与less1一致
less-3这里注入单引号之后会报错,从报错信息上能看出,这里是字符型,且被单引号和括号包裹,其他操作与less1一致
less-4这里注入双引号之后会报错,从报错信息上能看出,这里是字符型,且被单引号和括号包裹,其他操作与less1一致
less-5这里注入单引号之后报错,从报错信息上能看出,这里是字符型,且无回显,当输入正确后才会显示you are in,这里需要用到布尔盲注先判断数据库长度开启burpsuite,将数据包发送到intruder,爆出数据库长度,这里试20位能够发现,当数据长度设置到8的时候,返回的数据包长度是跟其他的不一样的接下来我们试着爆 ...
twcms
搭建cms打开phpstudy,新建一个网站,如图:将压缩包内容解压到www目录下的twcms.com的该网站目录下,如图:打开网站,跳转到安装向导页面,如图:根据网站配置要求,修改php环境,如图:根据安装向导配置环境后,创建成功如图所示:
漏洞挖掘信息搜集通过fofa查询莱特州立大学的子域名,如图通过超级ping查询其CDN的ip,如图该网站只有一个ip通过旁站查询网站查询部署在该服务器上的其他域名,如图但这些ip都无法访问通过SearchMap进行ip反查域名使用nmap扫描34.200.30.249,查询结果如图通过whois查询,得到如图信息使用shodan查询,得到如图信息发现启用了80和443端口,分别用于http和https服务,可以将http作为一个切入点通过Wappalyzer插件分析网站使用的技术,如图发现该站使用了Drupal的CMS,搜索该CMS的漏洞通过搜索发现Drupal最新的漏洞为CVE-2024-3818,是一个影响 Drupal 9和 Drupal 10版本的远程代码执行(RCE)漏洞,该漏洞与文件上传功能中的安全缺陷有关。攻击者可以通过特制的恶意文 ...
TASK 2-upload-labs
这一部分不知道啥时候不小心被删了,今天做简历复盘时才发现,补上一个当时跟学的视频链接文件上传漏洞靶场(upload-labs)通关+知识点教程(pass1-21)最新版(超详细)
Pass1 前端js绕过由于本关只在前端检查文件后缀是否合法,所以我们只需要直接禁用JavaScript即可。
Pass2 content-type绕过本关在post请求包中会有content-type标识文件类型,在bp中修改为image/jpeg即可
Pass3 特殊后缀绕过(php3 php5)黑名单里面如果没有加入这类后缀,通过这类后缀依然能够以php方式执行文件
Pass4
TASK 3 vulhub
CVE-2019-9053在CMS Made Simple <= 2.2.9的版本中存在一个基于时间的SQL盲注漏洞。漏洞存在于 moduleinterface.php 文件中,具体涉及以下GET参数:mact: 指示要执行的管理操作,例如 “News,m1_,default,0”m1_idlist: 用于指定特定记录ID的列表在 moduleinterface.php 中,mact 和 m1_idlist 参数被直接用于构建SQL查询,而未经过充分的输入验证和转义处理。类似于以下形式:
123456$mact = $_GET['mact'];$m1_idlist = $_GET['m1_idlist'];// 构建SQL查询$query = "SELECT * FROM some_table WHERE mact = '$mact' AND id IN ($m1_idlist)";$result = mysql_query($query);
攻击者可以通过 m1_idlist 参数注入额外 ...
TASK 2-php-SER-libs-main
serialize() 函数用于序列化对象或数组,并返回一个字符串。serialize() 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。如果想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。实例:
12345<?php$sites = array('Google', 'Runoob', 'Facebook');$serialized_data = serialize($sites);echo $serialized_data . PHP_EOL;?>
输出:a:3:{i:0;s:6:"Google";i:1;s:6:"Runoob";i:2;s:8:"Facebook";}常见魔术方法的作用和触发条件:
魔术方法
作用
__construct()
创建对象时触发
__destruct()
对象被销毁时触发
__sleep()
在对象被序列化的过程中自 ...
TASK 1-SQL
学习SQL注入12345SQL查询语句查库:select schema_name from information_schema.schemata;查表:select table_name from information_schema.tables where table_schema = '数据库名';查字段名:select column_name from information_schema.columns where table_name='表名';查数据:select * from security.users;
limit语句:limiti参数有两个,用逗号隔开,前一个参数表示索引起始,后一个参数表示数据条数order by语句:按照参数给出的列进行排序 select * from users order by 1;SQL注释: --+ -- #union联合语句:接着前一段语句进行操作,对前一段语句进行修改,使得前一段语句不进行输出,即可将union后所需数据输出group_concat():合并一组相关数据并返回concat_ ...
TASK 1-PHP
学习PHPPHP可在不同的平台上运行,与目前几乎所有的正在被使用的服务器相兼容,他还提供了广泛的数据库支持。在学习web的道路上PHP是必不可少的工具。PHP文件可包含文本、HTML、JavaScript文件和PHP代码。PHP代码在服务器上执行,结果以纯HTML的形式返回给浏览器。
PHP语法PHP脚本以<?php开始,以?>结束;//用于单行注释,/*和*/用于段落注释。
PHP变量PHP中变量以$开始,变量名只能以字母或下划线开始,变量名区分大小写。PHP中没有声明变量的命令,变量在第一次赋值时被创建。PHP有四种不同的作用域:local、global、static、parameter。与其他语言有所不同的是,函数内无法调用函数外部的全局变量,若要在函数内部调用全局变量,需要使用global关键字,如global $x,$y;PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中,index为变量名称,这个数组可以在函数内部访问,即可在函数内部通过$GLOBALS['y']=$GLOBALS['x']+$GLOB ...
