2019-10-24:伪静态,VULHUB搭建靶场,宽字节sql注入,笔记
伪静态
1,需要开启站点的重写机制,需要修改配httpd配置文件,将LoadModule rewrite_module modules/mod_rewrite.so注释取消,需要apache支持解析.htaccess文件,找到 AllowOverride None修改为 AllowOverride ALL,重启apache
2,新建.htaccess文件,然后写入“重写规则”,
RewriteEngine on //开启重写机制
RewriteRule ([0-9]{1,})\.html$ index.php?id=$1//重写规则,([0-9]{1,})$匹配$1的值,\是转义符,html$表示Url中以html结尾
RewriteRule ([0-9]{1,}-[a-zA-Z]{1,})\.html$ index.php?id=$1¶=$2
VULHUB搭建靶场
Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。
https://github.com/vulhub/vulhub
https://vulhub.org/#/environments/
1,需要安装pip,是python的用来管理工具包的工具,安装compose,pip install docker-compose
2,下载vulhub,wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip, 解压 unzip vulhub-master.zip,进入cd vulhub-master
3,启动vulhub,进入某一个漏洞/环境的目录 cd tomcat/CVE-2017-12615,之后启动整个环境docker-compose up -d,移除环境docker-compose down -v,在哪个目录启动就在哪个目录移除
运行起来的环境的端口,docker ps
pip install docker-compose下载安装好docker-compose会报错ImportError: No module named ssl_match_hostname,找不到模块ssl_match_hostname,安装会提示有最新的了,解决方法
复制模块到包路径下
#进入backports模块路径
cd /usr/local/lib/python2.7/dist-packages
#复制整个包到transport包路径下
cp -r backports /usr/local/lib/python2.7/dist-packages/docker/transport
宽字节sql注入
mysqli_query("SET NAMES 'utf8'"); 设置查询结果的字符集编码
mysqli_set_charset("utf8"); 设置存的时候的字符编码
mysqli_real_escape_string(),对参数进行过滤转义,基友类似功能的函数有,addslaches()
mysql_escape_string(php 5.3之后移除了),
魔术引号(magic_quotes_gpc模块)
特殊符号有',",\,null,<,>,等进行转义
gbk编码,针对汉字的一种编码方式,使用两个字节编码一个汉字
如果程序的默认字符集是GBK等宽字节字符集,就有可能产生宽字节注入,绕过上述过滤。
若在 PHP 中使用mysql_query("set names gbk")将默认字符集设为GBK,而使用addslashes()转义用户输入,这时如果用户输入%bb%27,则addslashes()会在%27前面加上一个%5c字符,即转义字符\。
而 MySQL 在使用GBK编码时,会认为两个字符为一个汉字,%bb%5c是一个宽字符(前一个 ASCII 码大于 128 才能到汉字的范围),也就是籠,也就是说%bb%5c%27=籠',这样单引号就未被转义能闭合语句,从而产生 SQL 注入。%bb并不是唯一一个可以产生宽字节注入的字符,理论上%81-%FE均可。
过滤\'中的\
构造%bb%5c%5c%27,addslashes()会在两个%5c和%27前都加上\即%5c,变为%bb %5c%5c %5c%5c %5c%27,但宽字符集认为%bb%5c是一个字符即籠,则变为%bb%5c %5c%5c %5c%5c %27即籠\\\\',四个\正好转义为两个\,即'未被转义。这也是 bypass 的一种方法。
测试步骤
1,访问站点,查看返回结果,http://127.0.0.1/gbksql/01/?id=1' 查看返回结果,SELECT * FROM news WHERE tid='1\''
2,http://127.0.0.1/gbksql/01/?id=1%df',高位在81以后就能用,81-fe,1%df--->1df5c-->1運',引号出来就闭合了,就可以使用语句注入了
PDO:连接数据库-->设置模版-->绑定数据-->执行sql语句
PDO prepare参数化语句,可以解决sql注入语句的原理 https://www.jianshu.com/p/c0deb8061718
二次编码注入
浏览器会对from表单中数据进行依次url解码,到达服务器之后会默认解码
php中url解码函数有,urldecode(),rawurldecode()两个函数
头部注入
x-forwarded-for:简称xff头,它代表客户端,也就是HTTP的请求端真实的Ip,通常一些网站的防注入功能会记录请求端真实Ip地址并写入数据库or某文件
2019-10-24:伪静态,VULHUB搭建靶场,宽字节sql注入,笔记的更多相关文章
- 宽字节SQL注入
1.联想lelink站 例1, 联想lelink站user参数存在宽字节SQL注入 提交,user=wctest%df’ and 1=2%23 结果,出现了”運”字,如图:
- 第一次靶场练习:SQL注入(1)
SQL注入1 本文章目的是对相关的黑客内容进一步了解,如有人违反相关的法律法规,本人概不负责 一.学习目的: 利用手工注入网站 利用sqlmab注入 二.附件说明 靶场网址:http://117.41 ...
- 2019.10.24 CSP%你赛第二场d1t3
题目描述 Description 精灵心目中亘古永恒的能量核心崩溃的那一刻,Bzeroth 大陆的每个精灵都明白,他们的家园已经到了最后的时刻.就在这危难关头,诸神天降神谕,传下最终兵器——潘少拉魔盒 ...
- 2019/10/24 CSP-S 模拟
T1 tom 题意: 考虑一定是属于\(a\)的在一坨,属于\(b\)的在一坨,找到这条连接\(a\)和\(b\)的边,然后分别直接按\(dfs\)序染色即可 注意属于\(a\)的连通块或属于\(b\ ...
- [靶场实战]:SQL注入-显错注入
SQL注入的本质:就是将用户输入的数据当作代码带入执行. 注入条件: 1.用户能控制输入 2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行 首先检查是否存在注入点 Rank1: 构造语句 ? ...
- SQL注入:宽字节注入
了解GBK编码 尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的 ...
- 宽字节XSS跨站攻击
简介 宽字节跨站漏洞多发生在GB系统编码. 对于GBK编码,字符是由两个字节构成,在%df遇到%5c时,由于%df的ascii大于128,所以会自动拼接%5c,吃掉反斜线.而%27 %20小于asci ...
- Alpha冲刺(1/10)——2019.4.24
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(1/10)--2019.4.24 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- kali docker简单使用-vulhub搭建fastjson漏洞环境
准备环境 安装kali和docker参考: https://www.cnblogs.com/lijingrong/p/13396884.html sudo service docker start / ...
随机推荐
- The value for the useBean class attribute is invalied
JSP: The value for the useBean class attribute XXX is ...
- SpringCloud Config(配置中心)实现配置自动刷新(十六)
一.实现原理 1.ConfigServer(配置中心服务端)从远端git拉取配置文件并在本地git一份,ConfigClient(微服务)从ConfigServer端获取自己对应 配置文件: 2.当远 ...
- vsftpd超实用技巧详解
简介: vsftpd是"very secure FTP daemon"的缩写,是一个完全免费的.开放源代码的ftp服务器软件. 工作原理: vsftpd使用ftp协议,该协议属于应 ...
- 【XSY2505】tree
Description 机房断网了!xj轻而易举地撬开了中心机房的锁,拉着zwl走了进去.他们发现中心主机爆炸了. 中心主机爆炸后分裂成了 n 块碎片,但碎片仍然互相连接,形成一个树的结构.每个碎片有 ...
- [考试反思]0811NOIP模拟测试17:虚无
(sdfz未参加,也就是一共就51个人) 也不粘具体排名了,只写分数线. []220 []201 []194 [5]181 [10]141 [15]132 [20]122 [25]116 [30]10 ...
- 详解SpringBoot应用跨域访问解决方案
一.什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访 ...
- C#同级catch块和finally块中全都抛出异常,上一级捕获哪一个?
C#同级catch块和finally块中全都抛出异常,上一级优先捕获finally块中的异常. 测试代码: using System; namespace test { class Program { ...
- Linux之ant安装部署
接下来呢,就开始ant的部署,具体分为如下几个步骤: 1. 获取介质: 在apache的官网中直接下载,下载地址为:http://ant.apache.org/ 下载需要的版本即可: 2. 复制到us ...
- [Office] 显示Office 2013中的Developer Tab和启用Macro
显示Developer Tab是对Office 2013进行开发的前提条件. 在Excel 2013中,打开Excel Option: 只要勾选对应的Developer选项即可显示该tab. 随着Of ...
- go 学习笔记之咬文嚼字带你弄清楚 defer 延迟函数
温故知新不忘延迟基础 A "defer" statement invokes a function whose execution is deferred to the momen ...