A2 - Broken Auth. & Session Mgmt. bWAPP - Broken Authentication 소스코드의 tonystark/I am Iron Man 을 입력하여 로그인한다.
[oAuth2] 구글 스프레드시트 접근
기존 data query 로 visualization 을 사용하던 코드에서
Error in query: ACCESS_DENIED. This spreadsheet is not publicly viewable and requires an OAuth credential.
상기와 같은 에러가 발생한다면, 아래를 통해 authorization 관련 내용을 추가해야 한다.
https://developers.google.com/chart/interactive/docs/spreadsheets
demo.html, demo.js 로 적용 가능하며, 개발자 콘솔에서 client id를 생성하여 해당 문서들에 적용해야 한다.
1) 프로젝트가 없다면 생성
2) 사용자 인증정보 선택
3) 사용자 인증정보 만들기 - OAuth 2.0 클라이언트 ID
도메인 입력(최상단 도메인으로 하면 된다.)
demo.js 의 makeApiCall() 함수에서 oauth2 라는 전역 변수에 추가 파라미터를 입력하고
기존 visualization data query 호출 경로에 access_token 파라미터가 추가되도록 했다.
var srUrl = "https://docs.google.com/spreadsheets/d/[SS경로]/gviz/tq?gid=0"+oauth2;
[bWAPP] Base64 Encoding (Secret)
A6 - Sesitive Data Exposure
Base64 Encoding (Secret)
cookie 값을 url decode 하여, base64decode 해본다.
[bWAPP] SQL Injection (GET/Search)
A1 - Injection
SQL Injection (GET/Search)
컬럼명을 담고 있는 db의 table로 접근해 SQL Injection 공격을 해볼 수 있다.
Iron Man' union select 1,1,1,column_name,1,1,1 from information_schema.columns;#
[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] Broken Auth. - Logout Management
A2 - Broken Auth. & Session Mgmt.
Broken Auth. - Logout Management
로그아웃 후, back button을 눌러 이전 페이지에서 중요 정보를 접근할 수 있는지 여부 확인
[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>
댓글 달기