脚本宝典收集整理的这篇文章主要介绍了php – 如何演示二阶SQL注入?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
insert.PHP
<?PHP $db_selected = MysqL_select_db('canada',$conn); if (!db_selected) die("can't use MysqL: ". MysqL_error()); $sql_statement = "INSERT into canada (UserID,FirstName,LastName,Age,State,Town) values ('".MysqL_real_escaPE_string($_REQUEST["UserID"])."','".MysqL_real_escape_string($_REQUEST["FirstName"])."','".MysqL_real_escape_string($_REQUEST["LastName"])."',".intval($_REQUEST["Age"]).",'".MysqL_real_escape_string($_REQUEST["State"])."','".MysqL_real_escape_string($_REQUEST["Town"])."')"; echo "You ran the sql query=".$sql_statement."<br/>"; $qry = MysqL_query($sql_statement,$conn) || die (MysqL_error()); MysqL_close($conn); Echo "Data inserted successfully"; } ?>
select.PHP
<?PHP $db_selected = MysqL_select_db('canada',$conn); if(!db_selected) die('Can\'t use MysqL:' . MysqL_error()); $sql = "SELECT * From canada WHERE UserID='".addslashes($_POST["UserID"])."'"; echo "You ran the sql query=".$sql."<br/>"; $result = MysqL_query($sql,$conn); $row=MysqL_fetch_row($result); $sql1 = "SELECT * From canada WHERE FirstName = '".$row[1]."'"; echo "The web application ran the sql query internally=" .$sql1. "<br/>"; $result1 = MysqL_query($sql1,$conn); $row1 = MysqL_fetch_row($result1); MysqL_close($conn); echo "<br><b><center>Database Output</center></b><br><br>"; echo "<br>$row1[1] $row1[2],you are a Voter! <br>"; echo "<b>VoterID: $row[0]</b><br>First Name: $row[1]<br>Last Name: $row[2] <br>Age: $row[3]<br>Town: $row[4]<br>State: $row[5]<br><hr><br>"; } ?>
因此,我故意使这个易受攻击,以显示二阶sql注入如何工作,用户可以在第一个名称部分输入代码(我目前卡住的地方,我尝试了很多不同的方式,但似乎我无法得到它可以做任何事情).
然后当一个人想要激活他在第一个名字部分中插入的代码时,他只需输入用户ID并插入代码即可.
例如:
我将在insert.PHP页面中输入:
userid = 17
firstname =(我需要在这里注入一些东西)
lastname = ..
年龄= ..
镇= ..
州= ..
然后,当我检查我的详细信息并输入17时,将激活注入的sql脚本.
我可以举几个例子来说明我可以通过这种方式展示哪种漏洞?
以上是脚本宝典为你收集整理的php – 如何演示二阶SQL注入?全部内容,希望文章能够帮你解决php – 如何演示二阶SQL注入?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。