【网络安全】WEB漏洞 pickchu靶场搭建:实例演示sql数字注入、目录遍历漏洞、文件下载漏洞
WEB漏洞01
CTE,SRc,红蓝对抗,实战等#简要说明以上漏洞危害情况
#简要说明以上漏洞等级划分
#简要说明以上漏洞重点内容
#简要说明以上漏洞形势问题
靶场搭建:https://github.com/zhuifengshaonianhanlu/pikachu
docker环境,我这里使用Ubuntu
[root@oldjiang ~]# docker pull area39/pikachu
[root@oldjiang ~]# docker run -d -p8080:80 area39/pikachu
72ddd9a05d31fdb921765519c413f3f97dbb34560c9c14d9aa59de73e5d6b3eb
在网页上方有初始化按钮,先进行初始化:建立数据库等
sql注入之数字注入
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:
1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;
2.使用参数化(Parameterized Query 或 Parameterized Statement);
3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!SQL注入在网络上非常热门,也有很多技术专家写过非常详细的关于SQL注入漏洞的文章,这里就不在多写了。
你可以通过“Sql Inject”对应的测试栏目,来进一步的了解该漏洞。
在靶机上登录数据库:
#查看运行的容器
crabin@crabin-virtual-machine:~$ docker ps
WARNING: Error loading config file: /home/crabin/.docker/config.json: EOF
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b1fa9bf0792 mysql "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
567c3230c489 area39/pikachu "/run.sh" About an hour ago Up About an hour 3306/tcp, 0.0.0.0:8080->80/tcp pedantic_turing#进入area39/pikachu容器
crabin@crabin-virtual-machine:~$ docker exec -it 567c3230c489 bash
#查看create_mysql_users.sh
root@567c3230c489:/# vim create_mysql_users.sh
也可以在 config.inc.php 文件中查看默认配置
root@567c3230c489:/# ls
app bin create_mysql_users.sh etc lib media opt root run.sh srv start-mysqld.sh tmp var
bd_build boot dev home lib64 mnt proc run sbin start-apache2.sh sys usr
root@567c3230c489:/# cd app/inc
root@567c3230c489:/app/inc# ls
config.inc.php function.php mysql.inc.php showvcode.php uploadfunction.php
root@567c3230c489:#vim config.inc.php
#登录 root 密码为空 ,
root@567c3230c489:/# vim create_mysql_users.sh
root@567c3230c489:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 5.7.26-0ubuntu0.18.04.1-log (Ubuntu)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
我们在数据库中运行下面语句,我们可以得到users数据表中的数据
mysql> select username, pw from member where id=1 union select username, password from users;
+----------+----------------------------------+
| username | pw |
+----------+----------------------------------+
| vince | e10adc3949ba59abbe56e057f20f883e |
| admin | e10adc3949ba59abbe56e057f20f883e |
| pikachu | 670b14728ad9902aecba32e22fa4f6bd |
| test | e99a18c428cb38d5f260853678922e03 |
+----------+----------------------------------+
4 rows in set (0.00 sec)
利用这个漏洞得到权限用户,SQL注入:
bp抓包:
即可
这里我们自己搭建的靶机,我们自己知道数据库中的字段名字和大小,在实际中我们需要先确定目标数据库中的字段
目录遍历漏洞
在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。
在网站根目录创建 xx.php 文件 ,我们在网站中访问这个文件
就是这个目录下的文件
既然这样我们在title后面的传值:…/…/…/…/xx.php 能不能访问到我们的xx.php文件
在app(根目录)下面创建文件:dir.php
<?phpfunction my_dir($dir) {$files = [];if(@$handle = opendir($dir)) {while(($file = readdir($handle)) !== false) {if($file != ".." && $file != ".") {if(is_dir($dir . "/" . $file)) { //如果是子文件夹,进行递归$files[$file] = my_dir($dir . "/" . $file);} else {$files[] = $file;}}}closedir($handle);}return $files;
}echo "<pre>";
$d= $_GET['d'];
print_r(my_dir($d));
echo "</pre>";
访问: http://192.168.222.131:8080/dir.php?d=…/app
可得到全部目录
也可以得到根目录的上级目录 : http://192.168.222.131:8080/dir.php?d=…/lib
在实际中我们可以通过目录扫描工具得到网站目录结构利用这个漏洞得到我们想要查看的网站目录下的文件,这个文件目录遍历漏洞还是需要和其他漏洞一起才可以发挥更大作用
文件下载漏洞
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。 所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。
点击下载时的链接:http://192.168.222.131:8080/vul/unsafedownload/execdownload.php?filename=kb.png
我们可以通过传入filename 的值来下载对应的文件, 如现在来下载我们在app目录(网站根目录)的上级目录下的xx.php:http://192.168.222.131:8080/vul/unsafedownload/execdownload.php?filename=…/…/…/…/xx.php
在实际中:
某个app下载网站: http://down.znds.com/apk/app/2019/0515/7033.html
L2Rvd24vMjAyMDA5MjcvZGJzY2pzYl80LjIuM19kYW5nYmVpLmFwaw== 用base64解码:/down/20200927/dbscjsb_4.2.3_dangbei.apk而实际的下载地址:
http://113.219.132.41/app.znds.com/down/20200927/dbscjsb_4.2.3_dangbei.apk
这里的就是把实际地址进行加密得到值传入s得到下载地址 如果我们根据目录得到该网站的目录要想得到目录下的某个文件就可以通过 这个目录的地址 再进行base64加密进行下载
【网络安全】WEB漏洞 pickchu靶场搭建:实例演示sql数字注入、目录遍历漏洞、文件下载漏洞相关推荐
- 【愚公系列】2023年05月 网络安全高级班 067.WEB渗透与安全(Havij实战-SQL自动化注入)
文章目录 前言 一.Havij实战-SQL自动化注入 1.简介 2.功能 3.使用 3.1 开启注入 3.2 注入日志 3.3 详细信息 3.4 查看数据 3.5 MD5破解 3.6 寻找后台 3.7 ...
- php post 漏洞_文件包含上传漏洞目录遍历命令执行漏洞
制丨阿星 来源丨freebuff 作者丨Deutsh 文件上传漏洞: 一句话木马 一句话木马主要由两部分组成:执行函数与 接收被执行代码的变量 执行函数: eval() assert() create ...
- 掌握渗透测试,从Web漏洞靶场搭建开始
摘要:漏洞靶场,不仅可以帮助我们锻炼渗透测试能力.可以帮助我们分析漏洞形成机理.更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果. 本文分享自华为云社区<Web漏洞 ...
- 16个网络安全常用的练习靶场(小白必备)
16个网络安全常用的练习靶场(小白必备) DVWA (Dam Vulnerable Web Application) DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性 ...
- Web安全 目录遍历漏洞(带你畅读 服务器中的机密文件.)
目录遍历漏洞概括: 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台 ...
- 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十四)-任意文件下载漏洞(2)
目录 前言: 3.编写"任意文件下载漏洞"后台 4.编写"任意文件下载漏洞"前台 5.运行测试 前言: 前面的博客记录学习任意文件下载漏洞相关知识,并思考如何构 ...
- 用友ERP-NC 目录遍历漏洞-实战
漏洞描述 用友ERP-NC 存在目录遍历漏洞,攻击者可以通过目录遍历获取敏感文件信息. 漏洞影响 用友ERP-NC POC <ip:port>/NCFindWeb?service=IPre ...
- phpcms前台注入导致任意文件读取漏洞
关于:phpcms前台注入导致任意文件读取漏洞的修复问题 简介: phpcms的/phpcms/modules/content/down.php文件中,对输入参数 $_GET['a_k']未进行严格过 ...
- 大华城市安防监控系统平台管理存在任意文件下载漏洞
大华城市安防监控系统平台管理存在任意文件下载漏洞 1.大华城市安防监控系统平台管理存在任意文件下载漏洞 1.1.漏洞描述 1.2.漏洞影响 1.3.FOFA 2.漏洞复现 2.1.登录页面 2.2.抓 ...
最新文章
- Rational工具介绍『转』
- mysql 修改表结构提示 MySQL said: Table is read only
- 王侠对话农民丰收节交易会 万祥军:解读供销社服务平台
- ora 12541无监听程序
- 前端---JavaScript基础3
- LeetCode MySQL 1264. 页面推荐(union)
- git 命令commit_Git Commit命令解释
- 字符串专题 【2008】四1 C++版
- BlackBerry 9850 应用:BBM, Windows Live Messenger (msn)
- linux开发 | DM9000网卡驱动
- WPS(Word)中图注、域的使用基础
- Django-QuerySet之first(),last(),latest(),earliest()
- Spire操作word文档
- Openssl-AES加密
- js页面中实现加载更多功能
- win10 彻底卸载docker
- 客厅的走廊应该怎么去设计
- 农历虎年快到了,我用 Python 写副春联恭祝大家幸福平安
- vue 获取当年当前季度
- 北京电信东区电信局 Excel人力资源应用培训