(未完)经典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: ...
随机推荐
- 一键升级所有pip过期库
import pipfrom subprocess import callfrom pip._internal.utils.misc import get_installed_distribution ...
- java读取Excel —— XSSFWorkbook 找不到该类
- centos 7.x安装 jdk1.8
参考链接即可:本人已经操作实现,才推荐出来 https://blog.csdn.net/weixin_42266606/article/details/80863781
- zookeeper伪集群
Zookeeper运行需要java环境,需要安装jdk,建议本地下载好需要的安装包然后上传到服务器上面,服务器上面下载速度太慢. 上传 [root@192 ~]# java -version java ...
- 001:photoshop教程
1:添加辅助线:有个位移的坐标系图标:点击标志中,鼠标按着不动.之后拖动到对应的位置. 2:量距离:第一行.第二个图标.直接测量像素. 3:切割图片: 3.1:第三行.第一列:选择切片工具 3.2:之 ...
- 40 (OC)* 数据库常见sql语句
1:增加INSERT INTO t_student (name, age) VALUES ('liwx', 18);2:删除DELETE FROM t_student WHERE name = 'li ...
- 暑期——第八周总结(1,安装好hadoop之后访问http://localhost:50070,无法连接【已解决】 2,Hbase命令详解)
所花时间:7天 代码行:800(Java) 博客量:1篇 了解到知识点 : 一:http://localhost:50070无法访问 安装好hadoop之后 输入所有东西都有 可就是访问50070无法 ...
- Python 为什么要保留显式的 self ?
花下猫语:前两天,我偶然在一个知识星球(刘欣老师的"码农翻身")里看到一篇主题,刘老师表示 Python 的类方法非要带个 self,而不像其它语言那样隐藏起来,这让人很不爽.我对 ...
- Github 入门1 (下载git , 连接本地库与github仓库)
/* 本篇建立在以注册GitHub账号的前提下*/ (1) 下载 git https://www.git-scm.com // win10 可以直接红色箭头标识的 Download 2.22.0 ...
- 一个selenium简单案例自动添加数据
//本来想着用execl来录入数据的,但是为了尽快完成所以直接搞了个数组 package aldtest; import org.openqa.selenium.*; import org.openq ...