MySQL 注射攻击与防范详解

PHP+MySQL JSP+MySQL 


一.基础知识 
1.MYSQL的版本 
4.0以下,4.0以上,5.0以上。 
4.0以下不支持union查询 
4.0以上magic_quotes_gpc默认为on 
5.0以上可以暴表暴列,支持跨库 
2.magic_quotes_gpc=on 
当php.ini里的 magic_quotes_gpc 为On 时。提交的变量中所有的 ' (单引号), " (双引号), \(反斜线) and 空字符会自动转为含有反斜线的转义字符。例如'会变成\'。给注入带来不少的阻碍。 
3.注释符 
Mysql有3种注释句法 
# 注射掉注释符后面的本行内容 
-- 注射效果同# 
/* ... */  注释掉符号中间的部分 
对于#号将是我们最常用的注释方法。 
-- 号记得后面还得有一个空格才能起注释作用。 

/*...*/  我们一般只用前面的/*就够了。 
注意:在浏览器地址栏输入#时应把它写成%23,这样经urlencode转换后才能成为#,从而起到注释的作用。 
注射中常用/**/代替空格。 

4.一些函数与MSSQL中的不同 
ascii () 
length() 
5.导出文件(into outfile) 
使用  into outfile 把代码写到web目录取得WEBSHELL   
首先需要 3大先天条件 
①知道物理路径(into outfile '物理路径') 这样才能写对目录 
②能够使用union (也就是说需要MYSQL4以上的版本) 
③对方没有对'进行过滤(因为outfile 后面的 '' 不可以用其他函数代替转换) 
后天条件就要2个 
①就是MYSQL 用户拥有file_priv权限(不然就不能写文件 或者把文件内容读出) 
②对web目录有写权限MS 的系统就不说了一般都会有权限的~但是*nix 的系统嘛!通常都是rwxr-xr-x 也就是说组跟其他用户都没有权限写操作 
6.读取文件(load_file()) 
serv-U默认安装路径的servudaemon.ini。注意可以变化D盘,E盘…… 
读取数据库配置文件 
IIS站点配置信息,c:\windows\system32\inetsrv\metabase.xml 
/usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件 
/usr/local/apache2/conf/httpd.conf 
/usr/local/app/php5/lib/php.ini //PHP相关设置 
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置 
/etc/my.cnf //mysql的配置文件 
/etc/redhat-release //系统版本 
C:\mysql\data\mysql\user.MYD //us存储了mysql.er表中的数据库连接密码 
/etc/sysconfig/iptables //从中得到防火墙规则策略 

7.绝对路径 
1.加特殊符号,访问不存在的链接 
2.读取服务器配置文件 
3.直接访问 
phpmyadmin/libraries/select_lang.lib.php 
phpmyadmin/darkblue_orange/layout.inc.php 
phpmyadmin/index.php?lang[]=1 
8.网站OS版本 
变换大小写。 
9.PHPMyadmin路径 
在测试uninx系统中phpmyadmin路径时候可以在http://127.0.0.1/后面尝试phpmyadmin的各种大小写组合。 

10.MySQL,外部连接,内部连接 
一般是3306.telnet 3306 。低版本外部允许连接。连接上之后即使magic_quotes_gpc=on也可以直接into outfile

转载于:https://my.oschina.net/leeyibin/blog/90570

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值