`
niunan
  • 浏览: 721394 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

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

    博客分类:
  • .NET
阅读更多
今天早上起来上网发现公司网站又被注入了,郁闷死了,赶快还原!!!
不过也多亏这注入,让我知道怎么简单的分析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>");
                    }
                }

            }
        }
    }
}

把代码记录下来,以备后用!
前几天申请了制作电子书的,上回发短消息给我说是已经做好了,但是我下载下来的大小却是0KB,不知道是怎么回事哦!!!
分享到:
评论

相关推荐

    ASP.NET防SQL注入脚本程序

    SQL注入是黑客利用输入字段向应用程序的SQL查询中插入恶意代码,从而控制或操纵数据库的一种手段。例如,如果一个登录页面没有正确验证用户输入,黑客可能会输入SQL命令而非用户名和密码,从而获取未经授权的访问...

    数据库脚本sql

    数据库脚本SQL是数据库管理与开发中的核心工具,主要用于创建、修改、删除数据库对象以及对数据进行各种操作。在实际的数据库应用中,字符串处理是一个常见的需求,无论是数据分析、报表生成还是业务逻辑处理,都离...

    sql2000批量替换字段中的值,sql注入批量替换

    - 字段替换是指在数据库表的一个或多个字段中查找并替换指定的文本或值。 - 在SQL Server 2000中,通常使用`UPDATE`语句结合`REPLACE`函数来实现这一功能。 3. **SQL注入**: - SQL注入是一种攻击方式,攻击者...

    sql server数据库中内容被挂马清除工具

    1. **扫描**:全面检查数据库中的所有表、字段,查找可能的恶意URL、脚本或二进制数据。 2. **分析**:分析可疑数据的行为模式,判断是否为恶意代码。 3. **隔离**:对疑似恶意的数据进行隔离,防止其进一步扩散或...

    数据库被挂马的解决办法

    2. **分析并识别木马**:根据提供的部分内容,我们可以看到一个用ASP编写的脚本,该脚本用于扫描数据库中的表,并检查字段类型为`129`, `130`, `200`, `201`, `202`, `203`的字段是否包含特定的恶意脚本(这里以“JS...

    除MSSQL数据库text字段中恶意脚本的删方法

    在SQL Server中,MSSQL数据库的text字段用于存储大段文本数据,但有时这些字段可能会被恶意脚本污染,导致安全问题。本教程将详细介绍如何删除MSSQL数据库text字段中的恶意脚本。 首先,我们需要理解为什么不能直接...

    sql server实现在多个数据库间快速查询某个表信息的方法

    在SQL Server中,实现跨多个数据库快速查询特定表信息的需求是一项常见的任务,特别是在拥有大量数据库的环境中。本文将介绍一种利用游标和系统存储过程的方法来实现这一目标。首先,我们要了解SQL Server中的系统...

    【ssm项目源码】图书管理系统(包含数据库脚本文件).zip

    这些脚本可能包括创建数据库表结构,定义字段类型,设置主键和外键关系,以及填充初始数据。例如,在图书管理系统中,可能有"books"表存储图书信息,"users"表存储用户信息,"borrow_records"表记录借阅记录等。 ...

    PHP MySQL 图书馆管理系统前后台全部代码(附带数据库脚本).zip

    每个表都有其特定的字段,如图书表可能有书名、作者、出版社、ISBN等字段。数据库设计需要遵循第三范式,确保数据的一致性和完整性。 5. 用户认证与授权:系统应包含用户注册、登录功能,使用加密算法(如MD5或更...

    sqlmap自动化脚本

    SQLMap是一款强大的、自动化的SQL注入工具,主要用于检测和利用SQL注入漏洞,它可以帮助安全研究人员或渗透测试者在目标网站上查找并利用数据库层面的安全弱点。这个“sqlmap自动化脚本”是用户自定义的批处理脚本,...

    mybaits框架的实现之根据id查询数据.zip

    在MyBatis中,你需要先创建一个数据库表,通常包含主键(如ID)和其他字段。例如,你可能会有一个名为`users`的表,其中`id`是主键。执行`ceshi.sql`后,你应该能在数据库中看到这些表和数据。 2. **MyBatis配置**...

    数据库字串批量替换工具

    2. 字符串替换:在数据库中,字符串替换通常用于更新特定字段中的文本内容。例如,如果黑客在每个记录的结尾添加了病毒代码,工具会定位这些代码并执行删除或替换操作。这个过程可能涉及到对数据库表的扫描、比较和...

    SSM的图书馆管理系统包含mysql数据库脚本导入即可运行.rar

    这些脚本可能包括创建图书表、读者表、借阅记录表等,以及相关的索引和约束。在部署系统时,需要先导入这些脚本来设置好数据库环境。 读者管理模块涉及创建、修改和删除读者信息,可能包括读者ID、姓名、联系方式等...

    python注入点查找工具[收集].pdf

    SQL注入是一种常见的网络安全威胁,攻击者通过在输入字段中插入恶意SQL代码,以获取未经授权的数据访问或对数据库进行操作。这个工具通过扫描网页响应,寻找特定的错误提示来判断是否存在SQL注入风险。 关键知识点...

    asp用户注册登陆模块—数据库

    1. 创建数据库表:首先,我们需要在数据库中创建一个用户表,包含字段如`username`、`password`(通常经过加密存储)、`email`等。 2. 插入数据:用户提交注册信息后,ASP通过ADO的Connection对象建立数据库连接,...

    易语言操作SQL Server数据库全过程.pdf

    每个字段都有其特定的数据类型和长度,例如,用nvarchar表示可变长度的非Unicode数据,适合存储长度不固定的文本信息。在实际应用中,应根据需求调整字段类型和长度。 接下来,在易语言中建立数据库连接。我们可以...

    计算机软件-商业源码-实例129-在Access数据库中模糊查询.zip

    例如,如果我们有一个名为`Customers`的表,要查找名字以"A"开头的所有客户,可以使用如下语句: ```sql SELECT * FROM Customers WHERE Name LIKE 'A%'; ``` 在这里,`%`是通配符,表示任何字符的任意数量。 ...

    ASP源码—360通用ASP防护代码(防sql注入).zip

    SQL注入是指攻击者通过在输入字段中插入恶意的SQL语句,来操纵数据库查询,获取未经授权的数据或者执行非法操作。在ASP中,如果不进行适当的输入验证和转义,就很容易受到这种攻击。360通用ASP防护代码提供了一套...

    ACCESS高级注入

    在信息安全领域,数据库注入是一种常见的攻击手段,通过在应用程序的输入字段中插入恶意SQL代码,以获取、篡改或破坏数据库中的数据。本文主要聚焦于ACCESS数据库的高级注入技术。 ACCESS数据库由于其自身特性,...

    扫描网站注入点

    在Web应用中,“注入”是一种常见的攻击手段,如SQL注入、命令注入或XSS(跨站脚本)注入。这些攻击都是通过输入恶意代码到应用程序的输入字段,使得应用程序执行非预期的操作,可能导致数据泄露、权限提升甚至完全...

Global site tag (gtag.js) - Google Analytics