数码资讯
PHP中常见SQL攻击正则表达式摘要
本文演示了php中SQL攻击的正则表达式,供大家参考,具体分析如下: 我们都知道,在MySQL 5 + information_schema存储所有的库名称,显示字段名称的信息。所以攻击方式如下: 1。确定第一个字符的第一个表是A的性格,在blind_sqli已知库名。 注意:在正则表达式中,^ {
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文演示了php中SQL攻击的正则表达式,供大家参考,具体分析如下:
我们都知道,在MySQL 5 + information_schema存储所有的库名称,显示字段名称的信息。所以攻击方式如下:
1。确定第一个字符的第一个表是A的性格,在blind_sqli已知库名。
注意:在正则表达式中,^ { A-Z }表示字符串中的字符是字母范围内开始
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ {到} 'limit 0,1)*
2。确定第一个字符是由一个字符
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ { A-N } 'limit 0,1)*
三.确定字符是n
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ n'limit 0,1)*
取代4。表达式如下
复制代码如下:表达是这样的:^ N { }->^ a-z A-Z }的NE { ->^新{ A-Z }->{ }^消息大全>假
此时,表名是新闻,是否说明正则表达式的^新闻$ ',但它是没有必要直接判断table_name =新闻'不'。
5。然后想其他的表只需要修改限制1,1 ->限2,1可以进一步下表盲。
例如:
复制代码如下:exec_commond美元= (的| S)*(exec(的| +)+(S | x)P w +)(的| S)*;
simple_xss美元=(的| S)*((% 3C)|)*(的| );
eval_xss美元= (的| S)*((65)| E)( )*((76)| V)( )*(61)|一)( )*(% 6c))*;
image_xss美元=(的| S)*((% 3C)|)*(的| );
script_xss美元= (的| S)*((73)| S)*((63)| C)( )*(72)| R)×(69)×(69)×;
sql_injection美元=(的| S)*((27)|(')|(% 3D)|(=)|( /)|(% 2F)|(|(|)(22)(- | % 2D){ 2 })|(23)|(% 3b)|(;))+(的| S)*;
SQL攻击代码:
复制代码代码如下:< PHP
功能自定义错误(错误errstr美元,美元,美元errfile美元,errline)
{
回声错误号:{ $ errno },在errfile美元errline美元的错误;
(死亡);
}
set_error_handler(自定义错误
getfilter美元=|(和|或) B +(> < | | = |在|像)| / *,+ * / | < *脚本 B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库);
后置滤波器=美元B(和|或) B. { 1,6 }(= | > | < | bin B | 自行车 B)| / *,+ * / | < *脚本B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库)。
cookiefilter美元= B(和|或) B. { 1,6 }(= | > | < | bin B | 自行车 B)| / *,+ * / | < *脚本B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库)。
功能stopattack(strfiltkey美元美元美元,strfiltvalue,arrfiltreq)
{
如果(is_array($ strfiltvalue))
{
strfiltvalue美元(美元strfiltvalue)=崩溃;
}
如果(preg_match( / 。arrfiltreq美元。 /
{
猛击(运行IP:。_server美元{ remote_addr )。手术时间:。Strftime(% y %M - %:% H M:%s)。操作页面:美元。_server {php_self ,提交模式:美元。_server {request_method 。
打印结果通知:非法操作!;
出口();
}
}
foreach(_get美元美元美元价值的关键= >)
{
stopattack(美元,美元的价值,getfilter美元);
}
foreach(_post美元美元美元价值的关键= >)
{
stopattack(美元美元美元价值的关键,,后置);
}
foreach(_cookie美元美元美元价值的关键= >)
{
stopattack(美元,美元的价值,cookiefilter美元);
}
功能猛击($日志)
{
toppath美元=日志.htm;
TS = fopen(toppath美元美元,+);
作用是:将内容($ TS,$日志。RN;
Fclose($ TS);
}
>
SQL分析:
如果使用这个函数,这个函数将绕过PHP的标准错误处理,所以你可以说你定义了错误处理程序(死亡())。
其次,如果有代码之前执行一个用户定义的程序错误,当时未执行,因此用户不会使用错误处理由用户自己编写的程序。 U3000
然后,PHP中有一套错误处理机制。它可以在PHP的错误处理的set_error_handler(),或使用trigger_error()函数抛出一个错误。
的set_error_handler()函数设置用户定义的错误处理功能。该功能用于创建用户自己的错误在运行过程中的处理方法。它需要创建一个错误处理函数的第一,然后设定误差水平。 U3000 U3000 U3000
使用:
复制代码如下:功能自定义错误(错误errstr美元,美元,美元errfile美元,errline)
{
回声错误代码:{ $ { } } } { errstr errno美元 R;
回声错误的代码行:errline }的{ $文件{ $ errfile } R;
PHP版本
( /死亡);
}
set_error_handler(自定义错误
总结
当PHP遇到错误时,它给出了错误脚本的位置、数量和原因,许多人说这没什么大不了的,但是揭示实际路径的后果是不可想象的。一些入侵者,这个信息是非常重要的,但事实上,有很多的服务器,有这方面的问题。一些网络管理员只需设置display_errors在PHP配置文件,但我认为这种方法太消极了。有时候,我们需要PHP返回错误信息,它可以调试。还需要提供给用户,甚至浏览其他网页的时候,这是错误的。但set_error_handler(),这些矛盾都是可以解决的。但是发现这个功能很少使用。
希望本文能对大家的PHP程序设计有所帮助。
我们都知道,在MySQL 5 + information_schema存储所有的库名称,显示字段名称的信息。所以攻击方式如下:
1。确定第一个字符的第一个表是A的性格,在blind_sqli已知库名。
注意:在正则表达式中,^ { A-Z }表示字符串中的字符是字母范围内开始
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ {到} 'limit 0,1)*
2。确定第一个字符是由一个字符
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ { A-N } 'limit 0,1)*
三.确定字符是n
复制代码如下:指标。phpid = 1,1 =(选择1 information_schema.tables哪里table_schema =blind_sqli 和table_name regexp的^ n'limit 0,1)*
取代4。表达式如下
复制代码如下:表达是这样的:^ N { }->^ a-z A-Z }的NE { ->^新{ A-Z }->{ }^消息大全>假
此时,表名是新闻,是否说明正则表达式的^新闻$ ',但它是没有必要直接判断table_name =新闻'不'。
5。然后想其他的表只需要修改限制1,1 ->限2,1可以进一步下表盲。
例如:
复制代码如下:exec_commond美元= (的| S)*(exec(的| +)+(S | x)P w +)(的| S)*;
simple_xss美元=(的| S)*((% 3C)|)*(的| );
eval_xss美元= (的| S)*((65)| E)( )*((76)| V)( )*(61)|一)( )*(% 6c))*;
image_xss美元=(的| S)*((% 3C)|)*(的| );
script_xss美元= (的| S)*((73)| S)*((63)| C)( )*(72)| R)×(69)×(69)×;
sql_injection美元=(的| S)*((27)|(')|(% 3D)|(=)|( /)|(% 2F)|(|(|)(22)(- | % 2D){ 2 })|(23)|(% 3b)|(;))+(的| S)*;
SQL攻击代码:
复制代码代码如下:< PHP
功能自定义错误(错误errstr美元,美元,美元errfile美元,errline)
{
回声错误号:{ $ errno },在errfile美元errline美元的错误;
(死亡);
}
set_error_handler(自定义错误
getfilter美元=|(和|或) B +(> < | | = |在|像)| / *,+ * / | < *脚本 B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库);
后置滤波器=美元B(和|或) B. { 1,6 }(= | > | < | bin B | 自行车 B)| / *,+ * / | < *脚本B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库)。
cookiefilter美元= B(和|或) B. { 1,6 }(= | > | < | bin B | 自行车 B)| / *,+ * / | < *脚本B | B |工会预算执行情况。+选择|更新。+ |插入 +到+价值|(选择|删除)。+ |(创建|改变|滴|截断) +(表|数据库)。
功能stopattack(strfiltkey美元美元美元,strfiltvalue,arrfiltreq)
{
如果(is_array($ strfiltvalue))
{
strfiltvalue美元(美元strfiltvalue)=崩溃;
}
如果(preg_match( / 。arrfiltreq美元。 /
{
猛击(运行IP:。_server美元{ remote_addr )。手术时间:。Strftime(% y %M - %:% H M:%s)。操作页面:美元。_server {php_self ,提交模式:美元。_server {request_method 。
打印结果通知:非法操作!;
出口();
}
}
foreach(_get美元美元美元价值的关键= >)
{
stopattack(美元,美元的价值,getfilter美元);
}
foreach(_post美元美元美元价值的关键= >)
{
stopattack(美元美元美元价值的关键,,后置);
}
foreach(_cookie美元美元美元价值的关键= >)
{
stopattack(美元,美元的价值,cookiefilter美元);
}
功能猛击($日志)
{
toppath美元=日志.htm;
TS = fopen(toppath美元美元,+);
作用是:将内容($ TS,$日志。RN;
Fclose($ TS);
}
>
SQL分析:
如果使用这个函数,这个函数将绕过PHP的标准错误处理,所以你可以说你定义了错误处理程序(死亡())。
其次,如果有代码之前执行一个用户定义的程序错误,当时未执行,因此用户不会使用错误处理由用户自己编写的程序。 U3000
然后,PHP中有一套错误处理机制。它可以在PHP的错误处理的set_error_handler(),或使用trigger_error()函数抛出一个错误。
的set_error_handler()函数设置用户定义的错误处理功能。该功能用于创建用户自己的错误在运行过程中的处理方法。它需要创建一个错误处理函数的第一,然后设定误差水平。 U3000 U3000 U3000
使用:
复制代码如下:功能自定义错误(错误errstr美元,美元,美元errfile美元,errline)
{
回声错误代码:{ $ { } } } { errstr errno美元 R;
回声错误的代码行:errline }的{ $文件{ $ errfile } R;
PHP版本
( /死亡);
}
set_error_handler(自定义错误
总结
当PHP遇到错误时,它给出了错误脚本的位置、数量和原因,许多人说这没什么大不了的,但是揭示实际路径的后果是不可想象的。一些入侵者,这个信息是非常重要的,但事实上,有很多的服务器,有这方面的问题。一些网络管理员只需设置display_errors在PHP配置文件,但我认为这种方法太消极了。有时候,我们需要PHP返回错误信息,它可以调试。还需要提供给用户,甚至浏览其他网页的时候,这是错误的。但set_error_handler(),这些矛盾都是可以解决的。但是发现这个功能很少使用。
希望本文能对大家的PHP程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。