(未完)经典Web漏洞实战演练靶场笔记
记录下自己写的经典Web漏洞靶场的write up,包括了大部分的经典Web漏洞实战场景,做个笔记。
0x01 任意文件下载漏洞

if(!empty($_GET['filename'])){
$filename = $_GET['filename'];
$fileinfo = pathinfo($filename);
header('Content-type: application/x-'.$fileinfo['extension']);
header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
header('Content-Length: '.filesize($filename));
readfile($filename);
exit();
}
这里对filename参数的值进行下载但是没有任何过滤,造成任意文件下载,如果要下载文件,我们可以使用绝对路径或者相对路径
以下载my.ini为例子
绝对路径:

相对路径:


0x02 任意文件读取漏洞
<?php
if(isset($_GET['tpl'])){
echo "<pre>";
@readfile($_GET['tpl']);
echo "</pre>";
}
?>
没做任何验证就读取文件。
http://www.hack_demo.com/hack_2.php?tpl=E:\phpstudy\MySQL\my.ini

0x03 任意文件删除漏洞(慎点~~)
这关是对传入删除函数的参数没有过滤,导致任意文件删除
<?php
if(isset($_GET['filename'])){
$filename = addslashes($_GET['filename']);//没过滤.
if(file_exists("file/".$filename))@unlink("file/".$filename);
echo "<script>alert(\"文件删除成功!\");location.reload();</script>";
}
?>

0x04 目录遍历漏洞
未对dir参数进行检查,直接显示dir参数指定的目录下的所有文件,造成目录遍历漏洞。
<?php
header("Content-Type:text/html; charset=utf-8");
if (isset($_GET['dir'])){ //设置文件目录
$basedir=$_GET['dir'];
}else{
$basedir = './file/';
}
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "文件名称: $basedir/$file "." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
?>
http://www.hack_demo.com/hack_4.php?dir=..

0x05 Cookie欺骗漏洞
这里只是判断cookie,cookie都是可以伪造的
这里只要$_COOKIE['user'] == md5($password)即可
<?php
error_reporting(0);
header("Content-Type:text/html; charset=utf-8"); $password = 'adminadmin';
if($_COOKIE['user'] == md5($password))
{
ob_start();
echo "您回来啦管理员!";
ob_end_flush();
}else{
$cookietime = time() + 24 * 3600;
$passt = 'user';
setcookie('user',md5($passt),$cookietime);
echo "您不是管理员!";
}
?>

0x06 URl跳转漏洞
这里对跳转的地址没有任何过滤,导致任意url跳转
<?php
$url=$_GET['jumpto'];
header("Location: $url");
?>
0x07 任意密码修改漏洞
http://www.hack_demo.com/hack_7.php
说白了 就是修改密码的时候判断用户标识太简单,比如这里修改密码的时候只是判断提交的id值,然后根据提交的id值去修改数据库中对应id的用户的密码。

<?php
$Id = isset($_POST['Id'])?$_POST['Id']:'';
$sql = "update `user` set `password`= '$password' where Id = '$Id'";
?>

这里修改密码 ,我们填入了然后抓包

id改为1 放包

(未完)经典Web漏洞实战演练靶场笔记的更多相关文章
- (未完)XSS漏洞实战靶场笔记
记录下自己写的XSS靶场的write up,也是学习了常见xss漏洞类型的实战场景
- CSRF漏洞实战靶场笔记
记录下自己写的CSRF漏洞靶场的write up,包括了大部分的CSRF实战场景,做个笔记. 0x01 无防护GET类型csrf(伪造添加成员请求) 这一关没有任何csrf访问措施 首先我们登录tes ...
- Go web编程学习笔记——未完待续
1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...
- [漏洞检测]Proxpy Web Scan设计与实现(未完待续)
Proxpy Web Scan设计与实现 1.简介: Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- Java开发中的23+2种设计模式学习个人笔记(未完待续)
注:个人笔记 一.设计模式分三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模 ...
- 《MySQL 基础课程》笔记整理(进阶篇)(未完)
一.MySQL服务安装及命令使用 安装过程就不写了,毕竟百度经验一大把 MySQL 官方文档 MySQL 参考手册中文版 1.MySQL简介 RDBMS(Relational Database M ...
- 疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类 ...
- unix高级环境编程学习笔记第七章(未完)
博客地址:http://www.cnblogs.com/zengjianrong/p/3222081.html 7.1 引言 Main函数调用:命令行参数:存储器布局:如何分配存储器:进程使用env: ...
随机推荐
- Mars视频笔记——Animation
Animations的使用(1) 什么是Animations 提供了一系列的动画效果,可以应用在绝大多数控件中 Animations的分类 1 Tweened Animations 渐变动画 提供了旋 ...
- 本地代码上传github失败常见错误
1.上传失败 解决办法如下: 可以通过如下命令进行github与本地代码合并: git pull --rebase origin master 重新执行上传命令: git push -u origin ...
- apache ignite系列(九):ignite调优
1,配置文件调优 1.1 设置页面大小(pagesize) 先查看系统pagesiz,使用PAGE_SIZE或者PAGESIZE # getconf PAGE_SIZE 4096 # getconf ...
- 基于 VMware 的超融合, 解析 vSAN 与 SmartX ZBS 的优劣差异
在企业级IT领域从业多年,最近越来越多地听到圈内人谈论起超融合技术的种种好处.的确,超融合技术已越来越走向成熟,带来的价值也逐渐凸显.它可靠性高,资源消耗低,尤其是运维部署非常便捷.在企业基础架构领域 ...
- Python--使用四种随机方法(Random)来产生随机价格
import random # 卖橘子的计算器:写一段代码,提示用户输入橘子的价格,# 然后随机生成购买的斤数(5到10斤之间),最后计算出应该支付的金额! # 第一种# orange_price = ...
- 02 (H5*) Vue第二天
目录: 1:全局过滤器的使用 2:局部过滤器 3:自定义键盘码 4:自定义指令 5:自定义私有指令 6:Vue生命周期. 7:网络请求 1:全局过滤器的使用 Vue.filter("msgF ...
- 编写优雅代码,从挖掉恶心的if/else 开始
背景 长话短说, 作为开发人员经常需要根据条件灵活查询数据库,不管你是用rawsql 还是EFCore, 以下类似伪代码大家都可能遇到: /// <summary> /// 灵活查询 能耗 ...
- CDH集群安装
1 软硬件准备 1.1 准备三个节点 序号 主机名 内存 CPU IP地址 角色 1 cdh1 8G 8核心 192.168.5.78 cloudera-scm-server,mysql 2 cdh2 ...
- [scikit-learn] 特征二值化
1.首先造一个测试数据集 #coding:utf-8 import numpy import pandas as pd from sklearn.preprocessing import OneHot ...
- [LeetCode] 由 “中缀表达式 --> 后缀表达式" 所想
如何利用栈解决问题. Ref: 如何在程序中将中缀表达式转换为后缀表达式? 本文的引申:如何手写语法分析器 实现调度场算法 “9+(3-1)*3+10/2” --> “9 3 1-3*+ 10 ...