文件包含服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
1234567文件包含各个脚本代码ASP,PHP,JSP,ASPXdeng<!--#include file="1.asp" --><!--#include file="1.aspx"--><c:import url="http://thief.one/1.jsp"><jsp:include page="head.jsp"/><?php include('test.php'); ?>
PHP中文件包含函数有以下四种:
require()
require_once()
include()
include_onc ...
执行权限
文件上传后存储目录不给执行权限
原理:开启禁止目录执行,将服务器的文件上传后存储目录,取消读取和执行的权限
12345由于文件上传功能并未做过滤,直接上传包含后门的木马文件shell.php上传成功即可发现,phpinfo被执行了,该文件被解析为php脚本当在小皮网址配置的==选择安全配置→开启禁止目录执行→将禁止执行的目录设置为上传目录(/1/upload)==开启后,再次访问上传的木马文件,发现报错403,至此文件上传漏洞不能被利用
解码还原123上传图片-->图片数据-->一串base64数据显示图片-->base64数据解码-->数据解析这种方式是只认数据,将文件数据做处理,就是不管你的后缀是什么,他直接将你的任意文件都当作数据处理,然后再由他的格式去输出
php代码:
1234567891011121314151617181920<?php// 处理文件上传if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES ...
apache未知后缀解析原理:apache在遇到不认识的后缀就会往前解析。
1234Apache默认一个文件可以有多个以点分割的后缀,apache会从最右边开始识别其后缀名,如遇无法识别的后缀名则依次往左进行识别如果运维人员给.php后缀的文件添加了处理程序 `AddHandler application/x-httpd-php .php` 那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞。
多后缀解析漏洞12很少见,配置问题在有多个后缀的情况下,只要有一个文件包含.php后缀的文件即将被识别成php文件,没必要最后一个后缀用这个特性,将会造成一个可以绕过上传白名单的解析漏洞
漏洞环境—vulhub
1/root/vulhub/httpd/apache_parsing_vulnerability
CVE-2017-15715—换行12345条件:符合漏洞版本2.4.0~2.4.29有文件上传点能够重命名上传文件缺一不可
然后使用十六进制将这个空格的地方换成 ...
12345678在没有解析漏洞的环境下,上传图片格式,是不会解析成脚本语言的,除非有其他错误的解析,例如文件包含之类的文件上传是什么?文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方 配合利用。另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!
upload-labs-docker靶场1项目地址:https://github.com/sqlsec/upload-labs-docker
less-1-前端验证
后端是没有做任何验证的
但是由于这里是前端验证,所以可以使用:
1231、禁用js,但是可能会导致页面不可用2、将页面保存到本地,然后删除js,在本地上传3、先上传一个正常的文件,然后使用burp进行修改
这里我使用第三种
less-2-htaccess文件
这一关是因为apche中有一个htacces ...
SQLMAP介是个嘛:
1SQLMap 是一款开源的自动化 SQL 注入工具,主要用于检测和利用 Web 应用程序中的 SQL 注入漏洞,支持多种数据库管理系统(DBMS),并能执行数据库枚举、数据提取、权限提升等操作。它被广泛应用于网络安全测试、渗透测试以及漏洞评估领域。
详解sqlmap缓存路径1C:\Users\yatming\AppData\Local\sqlmap\output #这个路径是sqlmap每次进行扫描的缓存路径,如果你攻击完成一个数据库,就会有缓存,然后下一次攻击的时候就不会猜解字符这些步骤,直接会调用缓存中的内容
测试access注入点1python sqlmap.py -u "http://192.168.111.138:89/Article.asp?classid=1" -v --batch
数据猜解 库表列数据 字典123456测试:http://vulnweb.com/--current-db--tables D ""--columns T "" D ""--d ...
二次注入
1234黑盒思路:分析功能有添加后对数据操作的地方(功能点)几乎不可能,干扰因素太多白盒思路:insert后进入select或update的功能的代码块(一般都通过这个方式挖出来)在前面学习PHP安全开发的时候,自己写了一个登陆页面,当时写的就有一个类似这个二次注入的问题,就是我在登陆和注册的地方都进行了预编译,但是在登陆的时候会进行一个echo输出一个弹窗(欢迎 xxxx 用户登陆),这里没有任何过滤,同时我没有对注册用户的用户名有敏感字符的过滤,只是对注册这个操作的时候有预编译,所以就导致了,攻击者只需要注册一个包含script的语句,就可以在登陆的时候造成一个存储型的xss。但是这个存储型又只能对自己有影响。
demo
首先注册用户,然后在登陆用户,让用户的cookie保存起来,然后再修改密码的时候因为采用的是cookie来判断是哪个用户,所以这里一定要登陆之后,在进行修改密码,才能触发你注册的恶意语句。
12#注册的用户名:1' and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)#
修改密码的时候就将 ...
123456789101112131415161718192021222324251、在网站应用中进行数据显示查询效果例: select * from news wher id=$id2、insert 插入数据在网站应用中进行用户注册添加等操作例:insert into news(id,url,text) values(2,‘x’,’$t’)3、delete 删除数据后台管理里面删除文章删除用户等操作例:delete from news where id=$id4、update 更新数据会员或后台中心数据同步或缓存等操作例:update user set pwd=’$p’ where id=2 and username=‘admin’5、order by 排列数据一般结合表名或列名进行数据排序操作例:select * from news order by $id例:select id,name,price from news order by $order#总结:这里就是增删改查,跟是上一章不一样的是,上一章是不一样的闭合方式,这里是不一样注入的方式,不同的功能的sql,在注入的语句都 ...
PHP-MYSQL-数据请求类型1sql语句由于在黑河中是无法预知写法的,sql注入能发成功是需要拼接原sql语句,大部分黑盒能做的就是分析后各种尝试去判断。所以有可能有注入但可能出现无法注入成功的情况。究其原因大部分都是原sql语句的未知性导致的拼接失败!(其实说白了就是不知道怎么进行闭合)
1234567891、数字型 无符号干扰select * from news where id=$id;2、字符型(有符号干扰)select * from news where id='$id';3、搜索型(有多符号干扰select * from news where id like '%$id%'4、框架型(有各种符号干扰)select * from news where id=('$id');select * from news where (id='$id');
总结:不同类型进行的sql,在闭合符号上面都会有区别,这里还是一些例子,实战情况下只能靠猜。
PHP-MYSQL-数据请求方法12345requ ...
access无数据库用户
mysql里面有内置的管理用户,其中root就是默认的数据库管理员用户
网站上面的数据库都在mysql中,由root或一对一用户去管理
123456789101112131、数据库统一管理(root用户)每个网站的数据库都是由root用户统一管理2、数据库一对一管理(不同用户)每一个数据库都是有对应的用户进行管理。例子:网站A: 数据库用户zblog--->zblog(数据库)网站B:数据库用户demo--->demo01(数据库)不同模式,进行注入的区别;1、如果都是统一管理的方案,一个网站的数据库有注入,同服务器的其他数据库一起遭殃,而且因为是root,所以还可以读文件,写文件。提权。2、如果是数据库一对一管理,那么一个网站有注入,那么只有这个网站会GG,也不会影响到其他数据库,而且因为是低权限用户的原因,所以也写不了文件,读不了文件。
root用户:先测试读写,后测试获取数据
非root用户:直接测试获取数据
1这里我个人是倾向于,先去获取数据,然后在测试读写,因为可以尝试进入后台,这样就会有更多的机会得到绝对路径和写shell的机会。 ...
ASP-默认安装-MDB数据库泄漏下载1MDB 数据库泄漏的本质是:文件被存储在 Web 可访问目录下,且服务器默认允许直接下载该类型文件。这与 ASP 技术的早期设计、IIS 默认配置以及开发习惯密切相关,并非 ASP 本身的漏洞,但在缺乏安全配置的情况下,风险极高。
可以直接通过访问这个网站的路径,来访问这个数据库地址,就会触发下载操作。
如何获取到这个mdb文件:
1234561、通过目录扫描工具扫到这个数据库文件2、通过利用windows-server低版本特性,利用短文件名来判断(要求是对方服务器需要是IIS6.0)利用工具:https://github.com/VMsec/iisShortNameScaner视频中用的工具:https://github.com/lijiejie/IIS_shortname_Scanner3、通过爬虫来爬取路径,现在一般使用的比较多的是熊猫头和转子女神。
HTTP.SYS(CVE-2015-1635)蓝屏漏洞影响版本:
12Windows 7、 Windows Server 2008 R2 、 Windows 8 、 Wind ...