刷題記錄:[0CTF 2016]piapiapia


刷題記錄:[0CTF 2016]piapiapia

題目復現鏈接:https://buuoj.cn/challenges
參考鏈接:0CTF-2016-piapiapia

一、涉及知識點

1、數組繞過正則及相關

參考利用數組繞過問題小總結

md5(Array()) = null
sha1(Array()) = null    
ereg(pattern,Array()) = null
preg_match(pattern,Array()) = false
strcmp(Array(), "abc") = null
strpos(Array(),"abc") = null
strlen(Array()) = null

PS:multipart/form-data方式傳遞數組

2、改變序列化字符串長度導致反序列化漏洞

  • unserialize()會忽略能夠正常序列化的字符串后面的字符串
    比如:a:4:{s:5:"phone";s:11:"13587819970";s:5:"email";s:32:"aaaaaaaaaa@aaaaaaaaaa.aaaaaaaaaa";s:8:"nickname";s:10:"12345hacke";s:5:"photo";s:10:"config.php";}s:39:"upload/f47454d1d3644127f42070181a8b9afc";},反序列化會正常解析a:4:{s:5:"phone";s:11:"13587819970";s:5:"email";s:32:"aaaaaaaaaa@aaaaaaaaaa.aaaaaaaaaa";s:8:"nickname";s:10:"12345hacke";s:5:"photo";s:10:"config.php";},而忽略s:39:"upload/f47454d1d3644127f42070181a8b9afc";},從而導致讀取config.php
  • 可以利用這個規則構造字符串來閉合,如本題中filter()where替換成hacker,就可以將這個成員的最后一個字符擠出去,重復34次就可以擠出34個字符,正好閉合改序列化字符串

二、解題方法

見參考鏈接,不做贅述


免責聲明!

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



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