(未完)经典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: ...
随机推荐
- linux非root用户下安装软件,搭建生产环境
之前的用实验室的服务器,因为某些原因,使用的用户没有root权限.linux的非root用户很多软件无法安装,非常的不方便.我的方法是使用brew来代替系统的包管理工具.brew是最先用在mac上的包 ...
- Spring Security Oauth2 自定义 OAuth2 Exception
付出就要得到回报,这种想法是错的. 前言 在使用Spring Security Oauth2登录和鉴权失败时,默认返回的异常信息如下 { "error": "unauth ...
- 第二场周赛(递归递推个人Rank赛)——题解
很高兴给大家出题,本次难度低于上一场,新生的六个题都可以直接裸递归式或者裸递推式解决,对于老生的汉诺塔3,需要找出一般式,后两题分别为裸ST算法(或线段树)/线性DP. 正确的难度顺序为 种花 角谷定 ...
- ACM团队周赛题解(1)
这次周赛题目拉了CF315和CF349两套题. 因为我代码模板较长,便只放出关键代码部分 #define ll long long #define MMT(s,a) memset(s, a, size ...
- MOOC 数据库系统笔记(一):初步认识数据库系统
概述 什么是数据库 数据库是电子化信息的集合 数据库起源于规范化"表(Table)"的处理. Table:以按行按列形式组织及展现的数据. E.F.Codd,基于对"表( ...
- 使用spring拦截器实现日志管理
使用HandlerInterceptor拦截器,可以拦截请求,实现通用的日志管理操作 一.添加拦截器类 在"src/main/java"代码文件夹的"org.xs.dem ...
- spring中使用aop配置事务
spring的事务配置有5种方式,这里记录其中的一种:基于tx/aop声明式事务配置 在之前spring aop介绍和示例这篇所附代码的基础上进行测试 一.添加save方法 1.在testDao类里添 ...
- Kubernetes学习之k8s
k8s是什么 云原生 越来越多的开发者不仅使用容器作为应用部署和运行的载体,还积极使用了与容器这个应用载体天生匹配的微服务的架构,并依靠容器调度编排引擎的帮助,以保持对外部的敏捷性,这种容器化的微服务 ...
- Unity3D-游戏场景优化之遮挡剔除(Occlusion Culling)的使用
在大型3D游戏场景中,如何优化游戏性能是非常重要的一步.一般遮挡剔除是非常常用的.接下来我们看看如何使用遮挡剔除. 假设这是一个游戏场景. 下面这是相机的视口,相机的视觉是看不到很大立方体后面的那些小 ...
- WebStorm2017.3.4版本 注册码
http://idea.singee77.com http://im.js.cn:8888