zoukankan      html  css  js  c++  java
  • 我收到了互联网应急中心的通报!记sqlmap的正确打开方式。

    昨晚邮箱收到一封邮件,自动跑到了垃圾箱了

    今早上班我隐隐觉得有些不妥,从垃圾箱翻出来了

    是个看起来很严肃很官方的通报文件,大概长这样(反正关键信息我得马起来)

    看到邮件内容,十有八九是真的。因为这批网站用的是很久很久之前一个同事写的asp+access的老后台(历史悠久)

    之前也碰到过说有sql注入的漏洞,当时我太菜,根本不知道怎么处理,就把网站的所有写入权限给关闭了(留言板功能也不能用了)

    这份官方文档里有提到:sqlmap,之前没用过这东西,我暂且尝试着用一下

    首先是下载安装,找个大神写的教程:https://blog.csdn.net/baigoocn/article/details/51456721

    Windows下SQLMAP的安装图解

    由于SQLMap是利用Python语言写的,所以需要将Python这个语言环境给安装上,以下是详细安装过程:

    准备工作:

    (1) Windows7/8/10操作系统;

    (2) Python2.7.11;

    (3) SQLMap

    Step1.  Python2.7.11下载:(注意不要是太新的版本,可能会有兼容问题,我推荐的这个版本就挺好的!!!)

                下载地址:https://www.python.org/downloads/

    Step2.  Python2.7.11安装:

    2.1.  直接双击下载好的Python2.7.11安装包,默认,Next;

    2.2.  默认,Next;

    2.3.  将“Add python.exe to Path"项勾选,勾选后安装完成不再需要单独添加环境变量,默认是“去勾选”的;

     

     2.4.安装完成后,重启系统,查看是否生效,“Win+R”,输入cmd,然后输入python

     

    Step3: SQLMap下载

                下载地址:http://sqlmap.org/

    Step4: SQLMap安装

    4.1.  将下载的SQLMAP安装包解压到文件夹sqlmap中,并拷贝到 "C:Python27" 目录下;

    4.2. 然后在桌面新建立一个cmd的快捷方式,并命名为“SQLMap”;

    4.3.  然后在新建快捷方式上右键“属性”,将“起始位置”修改为 C:Python27sqlmap,然后确定;

     4.4.  双击刚才创建的快捷方式,输入sqlmap.py -h,出现如下信息则表示安装成功。

    至此,Over!

    ASP中的SQL注入

    然后我翻遍搜索引擎(其实也就找了排名前几的博文),大概了解了下asp的sql注入相关知识点

    参考链接:https://www.cnblogs.com/mo-beifeng/archive/2011/05/01/2033818.html

    如 果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。

    判断能否进行SQL注入:

    ① http://www.19cn.com/showdetail.asp?id=49

    ② http://www.19cn.com/showdetail.asp?id=49 and 1=1

    ③ http://www.19cn.com/showdetail.asp?id=49 and 1=2

    这就是经典的1=1、1=2测试法了,怎么判断呢?看看上面三个网址返回的结果就知道了:

    可以注入的表现:

    ① 正常显示(这是必然的,不然就是程序有错误了)

    ② 正常显示,内容基本与①相同

    ③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next)

    不可以注入就比较容易判断了,①同样正常显示,②和③一般都会有程序定义的错误提示,或提示类型转换时出错。

    当然,这只是传入参数是数字型的时候用的判断方法,实际应用的时候会有字符型和搜索型参数。

    防范方法
    SQL注入漏洞可谓是“千里之堤,溃于蚁穴”,这种漏洞在网上极为普遍,通常是由于程序员对注入不了解,或者程序过滤不严格,或者某个参数忘记检查导致。在这里,我给大家一个函数,代替ASP中的Request函数,可以对一切的SQL注入Say NO,函数如下:

    Function SafeRequest(ParaName,ParaType)
    '--- 传入参数 ---
    'ParaName:参数名称-字符型
    'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
    
    Dim Paravalue
    Paravalue=Request(ParaName)
    If ParaType=1 then
    If not isNumeric(Paravalue) then
    Response.write "参数" & ParaName & "必须为数字型!"
    Response.end
    End if
    Else
    Paravalue=replace(Paravalue,"'","''")
    End if
    SafeRequest=Paravalue
    End function

    其实简单来说,就是通过get传参的页面,接收参数时一定要进行过滤

    如果只是简单的数值型,那用 cint() 就好了

    提示:官方文档中测试用的语句类似于:

    sqlmap.py -u "http://www.xxx.com/newsview.asp?id=1" --batch

    如果能够获取到数据,就代表存在漏洞了、

    嗯,暂且先这样,等我修改完就给官方大大回复邮件去。

    补充:扫描一次之后会在本地留下扫描日志,有可能网站整改完不存在漏洞,但仍然检测出有。需要清空日志

    Sqlmap清除历史扫描日志

    使用Sqlmap扫描SQL注入漏洞时,首次扫描会在SQL的/root/.sqlmap/output/目录下留下

    以IP地址为名称的文件夹,如下所示:

    而如果该安全漏洞经过修复后,再次使用SQLMAP扫描的时候仍然会出现与首次扫描相同的结果,

    原因就是/root/.sqlmap/output/目录下存在之前的扫描记录,因此受到了影响。

    解决方法就是删除对应的扫描记录。

  • 相关阅读:
    Map
    Enumeration输出
    iterator的基本用法
    Annotation整合工厂设计模式
    自定义Annotation
    Annotation
    动态代理设计模式
    静态代理设计模式
    自定义ClassLoader
    获取类的类对象的几种方式
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/13213465.html
Copyright © 2011-2022 走看看