php sprintf函数引起的sql注入
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