iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 21
1
Security

資訊安全大補帖系列 第 21

資安補帖─Day21─DVWA初探

  • 分享至 

  • xImage
  •  

前言

研究所一放榜,感覺自己壓力上升了,
好想要自己在多把基礎打穩一點,
所以希望自己的文章,可以更加嚴謹與充實。

社團經驗談

如何維持良好的社團風氣─慶生XD
以往幹部生日都會一起慶生,唱唱生日快樂歌也很開心XD

正文

DVWA

  • 想練習實戰
    • 但是怕被警察叔叔抓走
  • 沒關系
    • 我們有DVWA

DVWA本人


  • 點選 Setup / Reset DB
  • 可知道
    • 作業系統(OS)使用Unix
    • 資料庫使用MySQL
    • PHP版本為7.0.3
    • 其他PHP設定


自己玩壞了,請點 Create / Reset Database


DVWA平台提供安全性修改

  • Low
    • 完全沒有安全措施
  • Medium
    • 有保護,但沒有保護到
  • High
    • 有保護,但仍可透過其他方式繞過保護
    • CTF比賽多為這種等級
  • Impossible
    • 安全的,當然請記得世界上沒有絕對的安全
    • 提供原始碼可以參考(讓開發者了解如何撰寫)


左邊區塊:可練習之弱點

  • Brute Force(暴力(破解))
  • Command Injection(命令行注入)
  • CSRF(跨站請求偽造)
  • File Inclusion(文件包含)
  • File Upload(文件上傳)
  • Insecure CAPTCHA (不安全的驗證碼)
  • SQL Injection(SQL注入)
  • SQL Injection(Blind)(SQL盲注)
  • Weak Session IDs
  • XSS (DOM)
  • XSS(Reflected)(反射型跨站腳本)
  • XSS(Stored)(存儲型跨站腳本)
  • CSP Bypass
  • JavaScript

Brute Force(暴力破解)

  • 密碼破解攻擊

Command Injection


PING

  • 網路基本判斷指令
  • ping IP

複習Linux指令

指令 說明
ls 列出目錄目前檔案
mkdir 建立資料
cd 切換目錄

正常使用方式


右下角有原始碼可以看

<?php 

if( isset( $_POST[ 'Submit' ]  ) ) { 
    // 得到輸入
    $target = $_REQUEST[ 'ip' ]; 

    // Determine OS and execute the ping command. 
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) { 
        // 如果是Windows系統
        $cmd = shell_exec( 'ping  ' . $target ); 
    } 
    else { 
        // Unix 
        $cmd = shell_exec( 'ping  -c 4 ' . $target ); 
    } 

    // 將cmd的內容直接吐回去前端
    echo "<pre>{$cmd}</pre>"; 
} 

?> 

重要函式

  • stristr(string,search,before_search)
  • php_uname(mode)

發現可以沒有輸入內容判斷

試試看pipe |

或是&&
或是&
請注意差別


撰寫程式時危險的API


  • 找到原始碼開始Code review
    • PHP
      • system
      • shell_exec
      • exec
      • proc_open
      • eval
      • passthru
      • proc_open
      • expect_open
      • ssh2_exec
      • popen


上一篇
資安補帖─Day20─逆向
下一篇
資安補帖─Day22─常見的攻擊
系列文
資訊安全大補帖53
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言