查找数据库中的某表某字段中是否有注入脚本

简介: 今天早上起来上网发现公司网站又被注入了,郁闷死了,赶快还原!!! 不过也多亏这注入,让我知道怎么简单的分析IIS日志了,呵呵,原来只要ctrl+f查找20%字符串就行,查到到如下东西 /forum/show.
今天早上起来上网发现公司网站又被注入了,郁闷死了,赶快还原!!!

不过也多亏这注入,让我知道怎么简单的分析IIS日志了,呵呵,原来只要ctrl+f查找20%字符串就行,查到到如下东西

/forum/show.aspx titleid=318 &caid =20%20And%20Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00)%20as%20varchar(1))%2Bchar(124)=1 80 - 117.32.250.106 Mozilla/4.0 302 0 0
呵呵,原来show.aspx这个页面没有经过验证,赶快补上。。。
然后自己用.NET做了个检测数据库中的表中的字段中的内容有没有注入脚本的页面,看来以后每天都得要运行这个页面检测一次哦!!!
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.IO;
using  System.Data;

public   partial   class  niunantest : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {

    }
    
protected   void  Button1_Click( object  sender, EventArgs e)
    {
        
string  sql_tbName  =
            
" SELECT name FROM sysobjects  "   +
            
" WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0  "   +
            
" order by name " ;
        
//  获取数据库中所有的用户表
        DataTable dt_tbName  =  myClass.myDataGet.getTable(sql_tbName);
        
foreach  (DataRow row  in  dt_tbName.Rows)
        {
            
string  tbName  =  row[ " name " ].ToString();
            
string  sql_tbColName  =
                
" select column_name,data_type from information_schema.columns  "   +
                
" where table_name =' "   +  tbName  +   " '   " ;
            
//  获取表中所有的字段
            DataTable dt_tbColName  =  myClass.myDataGet.getTable(sql_tbColName);
            
foreach  (DataRow row2  in  dt_tbColName.Rows)
            {
                
string  tbColName  =  row2[ " column_name " ].ToString();
                
string  tbColType  =  row2[ " data_type " ].ToString();

                
if  (tbColType  ==   " char "   ||  tbColType  ==   " nchar "   ||  tbColType  ==   " varchar "
                    
||  tbColType  ==   " nvarchar "   ||  tbColType  ==   " text " )
                {
                    
string  sql_count  =
                        
" select COUNT(*) from [ "   +  tbName  +   " ] where [ "   +  tbColName  +   " ] like '%<script%'  " ;
                    
//  判断该表该字段中是否含有script脚本
                     int  count  =   int .Parse(myClass.myDataGet.getDataScalar(sql_count).ToString());
                    
if  (count  >   0 )
                    {
                        Response.Write(tbName 
+   "  表中的  "   +  tbColName  +
                            
"  字段含有脚本!<br>SQL语句:<span style='color:blue;'> "   +  HttpUtility.HtmlEncode(sql_count)  +   " </span><br><br> " );
                    }
                }

            }
        }
    }
}
把代码记录下来,以备后用!
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
131 68
|
29天前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
29 1
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
缓存 数据库 数据安全/隐私保护
Discuz! X 数据库字典详解:DZ各数据表作用及字段含义
我们使用DISCUZ做网站时,有时需要对数据表进行操作,在操作数据表之前,需要对数据表进行了解。下面是DISCUZ 数据库各数据表作用及字段含义详解,方便新手更好的了解DISCUZ数据库。
67 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
81 8
|
3月前
|
JSON 数据库 数据格式
数据库表如果有json字段,该怎么更新
数据库表如果有json字段,该怎么更新
|
4月前
|
SQL 数据可视化 关系型数据库
成功解决7版本的数据库导入 8版本数据库脚本报错问题
您提供的链接是一篇关于如何解决在MySQL数据库中导入脚本时出现版本兼容性问题的博客文章。文章中提到,如果在MySQL 5.7之前的版本中使用utf8mb4_0900_ai_ci排序规则,会遇到"Unknown collation"错误。解决办法包括升级MySQL版本到8.0或更高,或者更改排序规则为utf8mb4_general_ci或utf8mb4_unicode_ci,并提供了修改SQL脚本的示例。 如果您需要更详细的信息或有其他问题,请告诉我。
|
4月前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
155 2
|
4月前
|
数据库
实体类的字段和数据库中的字段不一致、并且没有做中间替换、会发生什么
这篇文章讨论了实体类字段与数据库字段不一致时可能导致的问题,作者通过实际案例展示了字段不匹配时查询无法正确执行,并说明了修正字段匹配后查询可以成功执行的情况。
实体类的字段和数据库中的字段不一致、并且没有做中间替换、会发生什么
|
5月前
|
Oracle 安全 关系型数据库
下一篇
DataWorks