(未完)经典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: ...
随机推荐
- 聊聊JavaScript异步中的macrotask和microtask
前言 首先来看一个JavaScript的代码片段: console.log(1); setTimeout(() => { console.log(2); Promise.resolve().th ...
- String、StringBuffer、StringBulider的区别
1.线程安全性: 线程安全:String.StringBuffer 线程不安全:StringBulider 2.执行效率 StringBulider最快,Stringbuffer次之,String最差 ...
- Linux 笔记 - 第十三章 Linux 系统日常管理之(二)Linux 防火墙和任务计划
博客地址:http://www.moonxy.com 一.前言 Linux 下的的防火墙功能是非常丰富的,作为 Linux 系统工程师有必要了解一下.防火墙一般分为硬件防火墙和软件防火墙.但是,不管是 ...
- validator 自动化校验
温馨提示 请收藏再看.此文篇幅太长,你短时间看不完:此文干货太多,错过太可惜. 示例代码可以关注逸飞兮(公众号)回复jy获取. 收获 讲解详细:能让你掌握使用 hibernate-validator ...
- [Spark] 03 - Programming
写在前面 ETL Pipeline 学习资源 Ref: 使用 AWS Glue 和 Amazon Athena 实现无服务器的自主型机器学习 Ref: AWS Glue 常见问题 Extract is ...
- 【linux】【Python】python2.7安装pip9.0.1
Centos7系统默认自带python2.7,但是没有安装pip. [root@localhost docker-elk]# python -V Python 2.7.5 [root@localhos ...
- [sonarqube的使用] sonarqube安装
一 . SonarQube代码质量检查工具简介 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量 Sonar 不只是一个质量数据报告工具,更是代码质量管理平台 支持Java, C ...
- linux环境下Nginx的安装
因为工作环境大多数都是windows server服务器,仅有的linux服务器同事们都在抢着用,所以特意买了一台阿里云服务器,感兴趣的小伙伴可以了解一下,一年只要293: https://promo ...
- springboot 集成swagger2
使用Swagger 可以动态生成Api接口文档,在项目开发过程中可以帮助前端开发同事减少和后端同事的沟通成本,而是直接参照生成的API接口文档进行开发,提高了开发效率.这里以springboot(版本 ...
- .Net Core 商城微服务项目系列(九):使用Jenkins构建自动发布
1.首先通过Docker运行Consul,并保证各个服务都成功注册: 然后运行jenkins,对MI.Web项目进行发布构建,至于怎么配置之前已经写过了,和上一篇一模一样,这里贴下批处理命令: cd ...