sprintf函数作用:
sprintf() 函数把格式化的字符串写入变量中。
arg1、arg2、++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符位于 % 符号之后,由数字和 "\$" 组成
测试1.php文件:
<?php
$name = $_GET['name'];
$name = mysql_escape_string(stripslashes($name));
$sql = sprintf("select * from product where name = '$name' and adddate <= '%s' limit 1",date("Y-m-d H:i:s"));
echo $sql;
?>
由于函数处理了$name所以直接单引号是不能被注入的,如图
这个时候就要利用sprintf函数的特性了。
这样单引号就注入成功了。
来源:CSDN
作者:黑面狐
链接:https://blog.csdn.net/qq1124794084/article/details/104802553