渗透测试工具简介11 SQL 注入

作者: python测试开发 | 来源:发表于2018-11-09 17:43 被阅读22次

    渗透测试工具简介11 SQL注入

    SQL是结构化查询语言的首字母缩写。它用于检索和操作数据库中的数据。

    什么是SQL注入?

    SQL注入使动态SQL语句注释掉语句的某些部分或附加始终为真的条件来执行恶意SQL代码。

    可以使用SQL注入执行的攻击类型和数据库引擎相关。攻击适用于动态SQL语句。动态语句是在运行时使用来自Web表单或URI查询字符串的参数password生成的语句。

    某HTML表单的代码如下。

    <form action=‘index.php’ method="post">
    
    <input type="email" name="email" required="required"/>
    
    <input type="password" name="password"/>
    
    <input type="checkbox" name="remember_me" value="Remember me"/>
    
    <input type="submit" value="Submit"/>
    
    </form>
    

    上面的表单接受电子邮件地址和密码,将它们提交给名为index.php的PHP文件。
    它可以选择将登录会话存储在cookie中。 我们从remember_me复选框中推断出这一点。 它使用post方法提交数据。 这意味着值不会显示在URL中。

    后台用于检查用户ID的语句如下所示

    SELECT * FROM users WHERE email = $_POST['email'] AND password = md5($_POST['password']);
    # SELECT * FROM users WHERE email = '[xxx@xxx.xxx](mailto:xxx@xxx.xxx)' OR 1 = 1 LIMIT 1 -- ' ] AND password = md5('1234'); # SQL注入
    
    

    上面的语句直接使用$_POST[] 数组的值而不检验。密码使用MD5算法加密。为此用第2句可以直接进行SQL注入。

    SQL登陆注入实战

    演示网址不能承受太大压力,需要的请加钉钉pytesting索取。

    图片.png 图片.png

    步骤:

    • email: 输入 xxx@xxx.xxx
    • 密码输入: Enter xxx') OR 1 = 1 -- ]
    • 提交
    图片.png

    其他SQL注入

    • 删除数据
    • 更新数据
    • 插入数据
    • 在服务器上执行可以下载和安装特洛伊木马等恶意程序的命令
    • 将有价值的数据(如信用卡详细信息,电子邮件和密码)导出到攻击者的远程服务器
    • 获取用户登录详细信息等

    参考资料

    SQL注入的自动化工具

    如何防止SQL注入攻击

    组织可以采用以下策略来保护自己免受SQL注入攻击。

    • 在动态SQL语句中使用之前必须始终对其进行清理。
    • 存储过程 - 这些可以封装SQL语句并将所有输入视为参数。
    • 参数化
    • 正则表达式 - 检测潜在的有害代码并在执行SQL语句之前将其删除。
    • 数据库连接用户访问权限
    • 错误消息不要显示SQL。

    相关文章

      网友评论

        本文标题:渗透测试工具简介11 SQL 注入

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