- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用金丝雀保护程序,但有些输入仍然无法通过我的防御。这是代码:
#include <stdio.h>
#include <stdlib.h>
int urandom() {
#ifdef __unix__
int var;
FILE *fd = fopen("/dev/urandom", "r");
fread(&var, sizeof(int), 1, fd);
fclose(fd);
return var;
#else
return 4;
#endif
}
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
#include <stdbool.h>
#include <string.h>
int main(void) {
int begin_canary = urandom();
char buff[15];
int pass = 0;
int end_canary = begin_canary;
printf("\n Enter the password : \n");
gets(buff);
if(strcmp(buff, "thegeekstuff"))
{
printf ("\n Wrong Password \n");
}
else
{
printf ("\n Correct Password \n");
pass = 1;
}
if(pass)
{
/* Now Give root or admin rights to user*/
printf ("\n Root privileges given to the user \n");
}
if (begin_canary != end_canary) {
printf("Alert! Buffer Overflow detected.\n");
exit(1);
}
return 0;
}
对于包含随机字符的输入:“alskdjasldkjasldkjaslkdlkajsd”,检测到缓冲区溢出并发出“警报!”被打印。但由于某种原因,对于仅包含一个字符(例如 24 o's)的输入,两个金丝雀具有相同的值,并且程序因段错误而崩溃,并且没有打印“警报!”。
我的金丝雀机制出了什么问题?
谢谢。
最佳答案
您的检查仅验证相同的金丝雀,而不是值没有更改...在您一遍又一遍地输入相同字符的情况下,发生的情况是您用相同的值,因此它们仍然匹配。
为了提高效率,您需要针对未存储在堆栈中的值进行验证,例如将其存储在全局变量中:
int check_canary;
int get_canary(void) {
if (!check_canary) {
checK_canary = urandom();
}
return check_canary;
}
/* ... */
int begin_canary = get_canary();
char buff[15];
int pass = 0;
int end_canary = get_canary();
然后对照 check_canary
进行检查:
if (begin_canary != get_canary() || end_canary != get_canary()) {
/* fail */
}
一些值得一提的警告:
关于c - 缓冲区溢出 - 用金丝雀防御未成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900189/
我正在 node.js 中开发一个项目,该项目使用 mongoose 来处理 MongoDB。我想防御 XSS 攻击。建议的方法是什么?我找到了这个: https://www.npmjs.com/pa
如果某些 .html 文件只能通过密码匹配(在 PHP 中实现)与数据库中的哈希码来访问,用户仍然可以猜测可能的 .html 文件名并看到所谓的特权页面。查看特权页面的源代码,然后用户可以看到在该 .
问题 我们需要防御 Java 应用程序中的“WAITFOR DELAY”sql 注入(inject)攻击。 背景 [这很长。跳至“解决方案?”如果您很着急,请参阅下面的部分] 我们的应用程序在访问数据
我正在使用backbone和node.js创建一个网站,并且不认为默认情况下有任何针对CSRF的保护。在使用 Node.js 和 Backbone 时,是否有针对 CSRF 的标准方法?谢谢 最佳答案
我是一名优秀的程序员,十分优秀!