iT邦幫忙

2023 iThome 鐵人賽

0

Info

Walkthrough

  • 存取網頁後使用帳號和上關獲取的密碼登入,存在帳號密碼輸入框
    • Imgur
  • 點擊 View sourcecode 超連結查看後端 Perl 程式碼
    • Imgur
  • 分析程式碼邏輯後畫成流程圖如下,透過 param()quote() 處理使用者輸入的帳號密碼,再字串串接生成 SQL 查詢語句
    • Imgur
  • 可參考 Day 0x02 Natas Level 0 → Level 1 的方法,透過 Burp Suite 的 Proxy 攔截封包,將 Message Body 修改成 username=natas31&password="CHA" or 1=1 &password=4 後送出
    • Imgur
  • 查看網頁成功獲得下題的登入密碼
    • Imgur

Note

  • 第一個問題是 param() 可以接收多個參數,並會改用 array 回傳

    "If the parameter is multivalued (e.g. from multiple selections in a scrolling list), you can ask to receive an array." - FETCHING THE VALUE OR VALUES OF A SINGLE NAMED PARAMETER

  • 第二個問題是 quote() 如果傳入 array 會解析成多個參數,其中第二個參數代表資料型態,i.e., ['"CHA" or 1=1', 4] 因為 4 代表 SQL_INTEGER,導致輸入不會被轉譯成 \"CHA\" or 1=1,影響生成的 SQL 查詢語句
    • 而資料型態 2 ~ 8 都是代表數字,因此第二個 password= 可以從中任選一個

    "If $data_type is supplied, it is used to try to determine the required quoting behaviour by using the information returned by "type_info". As a special case, the standard numeric types are optimized to return $value without calling type_info." - quote

Summary

Reference


上一篇
Day 0x1E Natas Level 28 → Level 29
下一篇
Day 0x20 Natas Level 30 → Level 31
系列文
Natas 網頁安全:從入門到放棄35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言