渗透测试中的数据推断与自动化工具应用
1. 数据推断
在应用程序不同步处理有效负载的常见场景中,盲注入时可借助注入查询中的条件语句从数据库推断数据。若之前的漏洞示例并非异步,就能在响应中引入显著延迟,结合传统的 if-then-else 语句,对要检索的数据进行假设。
以下是此类攻击的高级伪代码示例:
if password starts with 'a'
delay(5 seconds)
else
return false
if password starts with 'aa'
delay(5 seconds)
else
return true
if password starts with 'ab'
delay(5 seconds)
else
return false
...
通过观察服务器响应时间,可反复检查特定用户密码字段的内容。如上述伪代码,经过前三次迭代,就能推断出密码值以 ab 开头。
在 MS SQL 中,为产生可观测的延迟,可使用 BENCHMARK() 函数让服务器重复执行任意操作。若使用如 MD5() 这类耗费 CPU 的函数,会在查询返回时引入显著且可测量的延迟。示例函数如下:
BENCHMARK(5000000,MD5(CHAR(99)))
此基准操作会对由 C
超级会员免费看
订阅专栏 解锁全文
1022

被折叠的 条评论
为什么被折叠?



