PHP反序列化漏洞学习
PHP反序列化漏洞学习PHP序列化PHP使用serialize()函数来进行序列化
函数原型:
serialize ( mixed $value ) : string
serialize()函数返回一个字符串,这个字符串包含了表示value的字节流,可以存储与任何地方,通常会存储在一个文本文件中。
序列化有利于存储或者传递PHP的值,同时不会丢失其类型和结构。
序列化对象
PHP中的对象可以被序列化,如果对象存在魔法函数__sleep(),那么在序列化前会调用魔法函数__sleep(),__sleep()函数必须返回一个数组,数组的内容是要进行序列化的属性。
demo1:
<?php
2020-05-24
WEB
命令执行&代码执行漏洞学习
命令执行&代码执行漏洞学习代码执行漏洞代码执行漏洞是由于web应用过滤不严谨,导致用户可以通过请求将代码注入到web应用中进行执行。php中有一些函数可以将参数当作代码来执行,例如assert()、call_user_func()等。当开发者使用了这些函数时,但没有对参数进行严格限制,导致了用户可以控制这些函数的参数,执行任意代码,这就是代码执行漏洞。
常见危险函数php代码执行相关的函数
eval()
mixed eval(string $code)
$code是需要被执行的字符串,这个字符串必须以;结尾。同时代码不能包含PHP tags,例如:”<?php echo ‘1
2020-05-23
WEB
sqli-labs writeup
sqli-labs writeup刷刷sqli-labs ,学习下sql注入漏洞
环境是win10虚拟机, phpstudy搭建的
php版本:5.4.45
mysql版本:5.7.26
less-1单引号闭合
payload:
获取表名
?id=0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
获取列名
?id=0' union select 1,2,group_concat(column_name) fro
2020-05-21
WEB
SQL注入学习
SQL注入学习SQL注入学习笔记
漏洞原理服务端在与数据库进行交互时,使用了字符串拼接的方式构造SQL语句,并且服务端没有对用户提交的参数进行严格的过滤,导致用户可以将SQL语句插入到可控参数中,改变原有的SQL语义结构,从而打到执行攻击者所预期的结果。
例如:
开发者使用下面的SQL拼接语句来向数据库查询数据
$sql = “select id, username from user where id = $id”;
其中$id是用户可控的参数,如果用户传入1 union select 1,database() limit 1,1 ,那么拼接后的SQL语义结构就会被改变,变成:
se
2020-05-13
WEB
XSS学习笔记
XSS学习笔记如题
XSS概述 跨站脚本攻击—XSS(Cross Site Script),是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。假设,在一个服务端上,有一处功能使用了这段代码,他的功能是将用户输入的内容输出到页面上,很常见的一个功能。但是假如,这里输入的内容是一段经过构造的js。那么在用户再次访问这个页面时,就会获取使用js在用户的浏览器端执行一个弹窗操作。通过构造其他相应的代码,攻击者可以执行更具危害的操作。
XSS原理反射型XSS反射型XSS也叫非持久型XSS,最常见的就是在URL中构造,将恶意连接发送给目标用户。当用户访问该
2020-05-03
WEB
同源策略与跨域资源共享
同源策略与跨域资源共享同源策略同源策略(Same Origin Policy, SOP) 是指在Web浏览器中,允许某个网页脚本访问另一个网页的数据,但前提是这两个网页必须有相同的URI、主机名和端口号,一旦两个网站满足上述条件,这两个网站就被认定为具有相同来源。此策略可防止某个网页上的恶意脚本通过该页面的文档对象模型访问另一网页上的敏感数据。
同源策略仅适用于脚本,这意味着一些网站可以通过相应的HTML标签来访问不同来源网站上的图片、CSS和动态加载脚本等资源,而跨站请求伪造就是利用同源策略不适用与HTML的缺陷。
同源的定义如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具
2020-05-02
WEB
文件包含漏洞
文件包含漏洞文件包含漏洞学习笔记
基本概念程序开发人员为了让代码更灵活,将被包含的文件设置为变量,然后通过文件包含函数去引入文件,这就是文件包含。
PHP中用于文件包含的函数用四个:
require()
require_once()
include()
include_once()
include和require函数的区别是:include()在包含过程中如果出现错误,会抛出一个警告,程序继续执行,而require()出现错误时,会直接报错并退出程序。
require_once()和include_once()功能与require()和include()相同,但是如果一个文件被包含过了,那
2020-04-28
WEB
upload_labs writeup
upload_labs writeup环境是windows,这里我用了他提供的集成环境,注意要修改apache的配置文件,因为他里面的路径和自己本地的不同,如果不修改的话apache会一直启动不来。
Pass-01这一关是客户端使用js对上传的文件后缀名进行校验,通过抓包修改就可以上传了,也可以禁用浏览器的js。
Pass-02抓包,修改Content-Type为image/gif
Pass-03利用windows操作系统特性,上传不符合wnidows文件命名规则的文件
shell.php%81
这里的%81需要在bp里进行urldecode
查了下,发现我的做法和别人的不一样…..
2020-04-26
writeup
文件上传漏洞
文件上传漏洞漏洞原理网站WEB应用存在一些文件上传功能,如文档、头像、图片、视频上传等,但是上传文件时,服务端代码对客户端上传的文件没有进行严格的校验和过滤,就可能导致可以上传任意文件。
危害通过这个漏洞,非法用户可以上传恶意脚本文件(webshell),通过webshell来控制整个网站,可以实现查看服务器目录、文件、执行系统命令等操作。
上传检测流程
客户端
JavaScript检测文件扩展名
服务端
服务端MIME类型检测(检测Content-Type内容)
服务端目录路径检测(检测Path参数相关的内容)
服务端文件扩展名检测
服务端文件内容检测(检测文件头或者是否包含恶意代码)
2020-04-25
WEB
Ubuntu18.04搭建web环境
Ubuntu18.04搭建web环境如题所示,我准备在Ubuntu18.04搭建一个web环境,要安装的东西有Apache、Mysql、PHP,本来是想在直接我的服务器上捣鼓的,但是第一次搞,怕把我白嫖来的服务器搞坏,所以先拿虚拟机练练手,写篇文章记录下。
apache2安装
sudo apt install apache2 -y
安装完后可以通过访问自身ip查看apache的默认page页面,上面有一些关于apache2配置的说明,简单阅读下。
apahce2的配置布局如下
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-
2020-03-13
WEB