伪静态
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&para=$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注入,笔记的更多相关文章

  1. 宽字节SQL注入

    1.联想lelink站 例1, 联想lelink站user参数存在宽字节SQL注入 提交,user=wctest%df’ and 1=2%23 结果,出现了”運”字,如图:

  2. 第一次靶场练习:SQL注入(1)

    SQL注入1 本文章目的是对相关的黑客内容进一步了解,如有人违反相关的法律法规,本人概不负责 一.学习目的: 利用手工注入网站 利用sqlmab注入 二.附件说明 靶场网址:http://117.41 ...

  3. 2019.10.24 CSP%你赛第二场d1t3

    题目描述 Description 精灵心目中亘古永恒的能量核心崩溃的那一刻,Bzeroth 大陆的每个精灵都明白,他们的家园已经到了最后的时刻.就在这危难关头,诸神天降神谕,传下最终兵器——潘少拉魔盒 ...

  4. 2019/10/24 CSP-S 模拟

    T1 tom 题意: 考虑一定是属于\(a\)的在一坨,属于\(b\)的在一坨,找到这条连接\(a\)和\(b\)的边,然后分别直接按\(dfs\)序染色即可 注意属于\(a\)的连通块或属于\(b\ ...

  5. [靶场实战]:SQL注入-显错注入

    SQL注入的本质:就是将用户输入的数据当作代码带入执行. 注入条件: 1.用户能控制输入 2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行 首先检查是否存在注入点 Rank1: 构造语句 ? ...

  6. SQL注入:宽字节注入

    了解GBK编码 尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的 ...

  7. 宽字节XSS跨站攻击

    简介 宽字节跨站漏洞多发生在GB系统编码. 对于GBK编码,字符是由两个字节构成,在%df遇到%5c时,由于%df的ascii大于128,所以会自动拼接%5c,吃掉反斜线.而%27 %20小于asci ...

  8. Alpha冲刺(1/10)——2019.4.24

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(1/10)--2019.4.24 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  9. kali docker简单使用-vulhub搭建fastjson漏洞环境

    准备环境 安装kali和docker参考: https://www.cnblogs.com/lijingrong/p/13396884.html sudo service docker start / ...

随机推荐

  1. vue.js 使用 vue-router 修改页面标题

    module.exports = { name: 'myComponent', data: {} route{ data: function(){ document.title = "页面标 ...

  2. Windows 10 + kali Linux 双系统安装教程(详细版)

    准备工具如下: kali Linux 镜像 准备一4G以上的U盘 制作U盘启动盘工具- Win32DiskImager 添加引导工具-EasyBCD 留出一个空的盘,哪个盘的空间比较大可以压缩出大概2 ...

  3. Windows中的JDK和Linux中的JDK是否相同

    前言 在面试中,被问到了一个问题: Windows中的JDK和Linux中的JDK是否相同? 其实,以上这个问题是一个子问题.原本的问题是:如何理解Java的跨平台机制.由于原问题显得有些宽泛,因此延 ...

  4. 浅谈Retinex

    Retinex是上个世纪七十年代由Land提出的色彩理论.我认为其核心思想基于俩点 (1)在颜色感知时,人眼对局部相对光强敏感程度要优于绝对光强. (2)反射分量R(x,y)储存有无光源物体的真实模样 ...

  5. 学习笔记24_MVC前后台数据交互

    *最普通的交互方式,在Contoller中的Action方法内 public ActionResult Index() { ViewData["Key"] =Value; Retu ...

  6. Selenium +Chrome浏览器如何模拟手机操作

    Selenium +Chrome浏览器如何模拟手机操作 进入手机模式 打开谷歌浏览器,按F12,进入开发者模式,点击Toggle device toolbar,进入手机模式 设置Chrome的手机模式 ...

  7. Spring容器自动调用方法的两种方式

    先看一个Spring中Bean的实例化过程: 1.配置文件中指定Bean的init-method参数 <bean class="com.jts.service.UserService& ...

  8. GitHub + jsDelivr + PicGo + Imagine 打造稳定快速、高效免费图床

    GitHub + jsDelivr + PicGo + Imagine 打造稳定快速.高效免费图床 前言 为什么要使用图床呢? 因为在不同平台发布同一篇文章的时候,最一个痛苦的点就是,图片存储问题,各 ...

  9. Linux | 性能分析系列学习 (1)

    学习重点: 把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯穿起来. 主要是四个方面:CPU 性能.磁盘 I/O 性能.内存性能以及网络性能 ...

  10. Docker 资源 | 官方文件

    Docker资源 Docker官方英文资源: docker官网:http://www.docker.com Docker windows入门:https://docs.docker.com/windo ...