[bWAPP] Broken Auth. - Password Attacks
A2 - Broken Auth. & Session Mgmt.
Broken Auth. - Password Attacks
무작위 공격이나 id/pw 예측 공격으로 로그인을 시도한다.
[bWAPP] Broken Auth. - Logout Management
A2 - Broken Auth. & Session Mgmt.
Broken Auth. - Logout Management
로그아웃 후, back button을 눌러 이전 페이지에서 중요 정보를 접근할 수 있는지 여부 확인
[bWAPP] bWAPP - Broken Authentication
A2 - Broken Auth. & Session Mgmt. bWAPP - Broken Authentication 소스코드의 tonystark/I am Iron Man 을 입력하여 로그인한다.
[bWAPP] CSRF (Change Password)
A8 - Cross Site Request Forgery
CSRF (Change Password)
패스워드 변경 경로를 삽입하여 타 계정으로 로그인한 사용자의 비밀번호를 변경한다.
이체 경로를 삽입하여 상대방 계좌의 금액을 차감 한다.
[bWAPP] XML/XPath Injection (Login Form)
A1 - Injection
XML/XPath Injection (Login Form)
로그인 ID, PW 에 ' or '1'='1 을 넣으면 된다.
selene, Thor, johnny, wolverine, alice
wolverine' or 'a'='a--
[bWAPP] Insecure DOR (Change Secret/Reset Secret)
A4 - Insecure Direct Object References
Insecure DOR (Change Secret)
POST 파라미터로 전송되는 login 값을 수정한다.
XML 에 포함된 login 값을 수정한다.
[bWAPP] Insecure DOR (Order Tickets)
A4 - Insecure Direct Object References
Insecure DOR (Order Tickets)
hidden 필드의 15eur을 변조하여 시도한다.
medium level에서는 post 파라미터에 ticket_price를 추가한다.
[bWAPP] Session Mgmt. - Administrative Portals
A2 - Broken Auth. & Session Mgmt.
Session Mgmt. - Administrative Portals
admin 파라미터에 1을 넣으면 성공 메시지가 나온다.
[bWAPP] XSS - Reflected (User-Agent)
A3 - Cross Site Scripting
XSS - Reflected (User-Agent)
header 값 중 user-agent에 스크립트를 삽입하여 전송하는 예제이다.
[bWAPP] SQL Injection (GET[POST]/Select)
A1 - Injection
SQL Injection (GET/Select)
movie=0+union select schema(),version(),user(),database(),SESSION_USER(),schema(),1--+-&action=go
GET[POST]/SEARCH 는 ' 로 되어 single quote 를 쓸 수가 없다. 동영상에는 그대로 되는데, 환경 탓 인가...
우분투에서는 되는군.
[bWAPP] Server-Side Includes (SSI) Injection
A1 - Injection
Server-Side Includes (SSI) Injection
LoadModule 을 지원하는 환경에서 가능하다
입력 필드에 <!--#echo var="DOCUMENT_ROOT" --> 를 넣었을 때, 아래와 같이 나오면 LoadModule이 지원 안되는 것이다.
실행 자체가 안 되니 의미가 없다.
<p>Hello 11<!--#echo Var="DOCUMENT_ROOT" --> 11,</p><p>Your IP address is:</p><h1><!--#echo var="REMOTE_ADDR" --></h1>
http://lispro06.woweb.net/infra/51326 참고
* 그동안 cgi 로 혼동했다. T.T;;
[bWAPP] PHP Code Injection
A1 - Injection
PHP Code Injection
해당 소스는 eval 로 되어 있다.
php 함수를 모두 사용 가능하다.
<p><i><?php @eval ("echo " .$_REQUEST["message"] . ";");?></i></p>
[bWAPP] OS Command Injection [blind]
A1 - Injection
OS Command Injection
동영상에서는 ; 등으로 테스트 하는데, windows 서버라 | (pipe, vertical var)로 하면 된다.
blind 의 경우,
명령어 >> 1.txt
로 파일을 만들어 해당 파일을 접근할 수 있다.
ren 이나, copy 명령어를 사용해 파일을 바꾸거나 txt 확장자로 교체해 소스 확인도 가능할 듯 하다.
del은 쓰지 말자.
[bWAPP] LDAP Injection (Search)
A1 - Injection
LDAP Injection (Search)
search 구문에 * 을 넣으면 모든 사용자 검색이 가능하므로 해당 문자열을 사용하지 못하도록 한다.
로그인 우회는 확인 중이다.
[bAWPP] HTML Injection - Stored (Blog)
A1 - Injection
HTML Injection - Stored (Blog)
XSS 저장 방식이다.
게시판에 테스트 하듯이 스크립트 구문을 바로 입력하면 된다.
html 인젝션은 <h1>bee</h1><h2>bug</h2> 를 넣으면 된다.
[bWAPP] HTML Injection - Reflected (URL)
A1 - Injection
HTML Injection - Reflected (URL)
현재 url을 표시해주는 간단한 서버사이드 스크립트이다.
~.php?a={스크립트구문}
을 넣어주면 실행 가능하다.
html 인젝션은 주소창 뒤에 ? 을 넣고 태그를 넣으면 된다.
?<h1>test</h1>
[bWAPP] HTML Injection - Reflected (GET/POST)
A1 - Injection
HTML Injection - Reflected (GET/POST)
id, pw 필드에 스크립트 코드를 넣으면 레벨 0에서 간단히 테스트할 수 있는데, 요즘 브라우저에서는 교차스크립트 방지 필터가 동작하여 결과 확인이 어렵다.
보안설정을 아래와 같이 바꾸면 가능하다.
XSS 가 아니고, HTML이라, HTML 태그를 넣어 테스트 해보는 내용이다.
<H1>TEST</H1>
<H2>TEST</H2>
[bWAPP] iFrame injection
A1 - Injection
iFrame injection
iframei.php?ParamUrl=robots.txt&ParamWidth=250&ParamHeight=250
ParamUrl 에 경로에 존재하는 파일을 넣으면 내용 확인 및 다운로드가 가능하다.
다운로드되는 파일은 portal.zip 이고, 나머지 php 파일 등은 렌더링되어 나오므로 파일 다운로드로 보기는 어렵다.
portal.bak, bugs,txt, 666 은 텍스트 형식이므로 내용 확인이 가능하다.
이를 소개한 동영상에서는 width, height를 바꾸거나 외부 경로 입력을 테스트 했다.
[DROWN] Decrypting RSA with Obsolete and Weakened eNcryption
DROWN 취약점이란 “Decrypting RSA with Obsolete and Weakened eNcryption: 취약한 구식 암호화법을 통한 RSA 복호화”에서 따온 이름으로, SSLv2취약점을 악용한 교차 프로토콜 공격입니다.
http://blog.alyac.co.kr/554
POODLE 과 RC4 관련 취약점 들을 제거하더라도 Openssl 관련 취약점이 계속 나오고 있다.
Heartbleed 는 시작이었다.
apache2 현재 Apache/2.2.22 (Ubuntu) OpenSSL 1.0.1 14 Mar 2012 에서 아래 옵션을 사용해 봤으나 TLSv1.1 이 잘 못 되었다는데, 해결은 추후에 해야겠다.
SSLProtocol -all +TLSv1.1 +TLSv1.2
SSLCipherSuite HIGH:!aNULL:!MD5:!SSLv2:!SSLv3:!TLSv1
RC4는
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
위와 같이 하면 된 듯 하다.
보안서버가 아래와 같이 무료로 사용할 수 있지만, 설정에 따라 취약할 수 있으니, 이 점에 주의해야 한다.
무료 점검 해주는 사이트들이 많아 좋기는 한데, 설정을 강화해야 하는 번거로움이 있다.
| COMODO | Lets encrypt | Start SSL |
금액 | 도메인 당 5만원 내외 | 무료 | 무료 |
사용기간 | 2년/1년 | 3개월(90일) | 1년(365일) |
의존성 | openssl, git, python, gcc, etc…..(자동설치) | ||
발급기관 | verisign, comodo, ….. | Mozilla, …….. sponsored by Google, Facebook, CISCO…. | StartCom |
지원서버 | Apache, nginx, IIS, ….. | Apache, nginx, iis(unstable), ? | Apache, IIS, ….. |
멀티도메인 | 별도 지원 | 일반적으로 어려움 | 유료 지원 |
[POODLE] SSLv3 Disable 적용 전, 후
여러 환경에서 취약성을 비교해 볼 수 있는 화면이다.
SSLv3 disable 적용 전, 후를 확실히 확인 가능하다.
https://www.digicert.com/ssl-support/iis-disabling-ssl-v3.htm
IIS의 경우 reg를 제공하므로 쉽게 적용 가능하지만, 재부팅이 필요하다.