【发布时间】:2013-10-06 21:33:10
【问题描述】:
我正在做有关 Web 漏洞的大学工作,我需要在实践中演示其中的一些漏洞,尤其是 SQL 注入。我开发了两个应用程序,一个在 PHP 中,一个在 JSP 中,但没有一个接受多个查询,我需要从 SQL 注入脚本执行 DROP TABLE。
所以我已经知道mysql_query() 会转义多个查询,Statement.execute() 也是如此,我还没有尝试过使用 ASP.NET。但是 ASP.NET 是唯一允许以最简单的查询语法实现这一点的 Web 语言吗?比如mysql_query()是PHP最简单的语法,st.execute()是JSP最简单的语法,也就是说很多web应用都使用这种语法。
JSP
String query = "SELECT * from user; DROP TABLE user;-- ";
st = con.createStatement();
st.execute(query);
PHP
mysql_query("SELECT * from user; DROP TABLE user;-- ");
编辑:我不是很清楚,我正在制作一个易受攻击的登录应用程序,我需要 DROP 一个带有 SQL 注入的表,就像在查询中一样:
"SELECT * FROM user where user ='".$_POST['user']."' AND pass = md5('".$_POST['pass']."')";
我传入用户字段';删除表用户; -- ',我的问题是,哪种网络语言允许我在不使用 mysqli_multi_query() 等特定功能的情况下做到这一点?
【问题讨论】:
-
了解
TRANSACTION。 -
两种语言都支持执行多个查询。还有php! (虽然不推荐使用的 mysql_* 函数没有。)
-
做“小鲍比桌”? xkcd.com/327 ADO.Net 支持以分号分隔的多个查询。 PHP 也应该...?
-
PHP MySQLi 扩展支持多个查询。 PHP MySQLi Multiple Statement.
-
是的,我知道 PHP mysqli_multi_query(),但我需要一种允许以最简单的查询语法进行多个查询的 Web 语言。像 PHP 最简单的语法是 mysql_query()
标签: php mysql jsp web sql-injection