본문 바로가기
300x250

정보보안/Web Hacking36

모의해킹 문제풀이 - 1번(답 포함) - 써니나타스(SuNiNaTaS) // CTF, Web Hacking, 암호 유추 문제분류 난이도 언어 공부를 많이 안해놔서 이 언어를 보고 웹 언어인거는 직감을 했는데 뭘까,,, 자바스크립트인가 Jinja 인가... 헷갈렸다. 검색해보니까 "JSP" 라고 하는데 공부를 어지간히 안하긴 했나보다 JSP가 뭔지를 모르겠다. ㅋㅋㅋ 아무튼 코드만 대충 해석을 좀 해보자면 str이라는 변수 요청 일듯하다. JSP 라는 언어가 Java에서 나온 API 같은 느낌으로 서버 요청용 Java Api(서블릿) 이라는 기능이라고 한다. 즉 서버에 요청하는 HTTP 헤더를 Java로 짠 듯 하니 If not str="" Then 이거는 str을 요청해서 확인해봤을때 Null이 아니라면? 이겠지? 코드를 살펴본 바로는 아직 모르는 str 값을 넣으면 str이 admin이 되어야 하는 듯 하다. 이제 문제.. 2021. 7. 31.
드림핵(DreamHack) - 커맨드 인젝션 -1, Command Injection-1(풀이) 해당 문제는 드림핵의 커맨드 인젝션-1번 문제입니다. command injection-1 Command injection 말 그대로 명령어 삽입 공격인 것 같은데 이 문제에서 해당 기법을 처음 접해봤습니다. SQL Injection 처럼 명령 구문을 삽입하는 공격이리라,, 하고 풀이해봤습니다. 사이트는 /index, /ping 두 개의 URL이 존재합니다. 문제를 풀기 전 함께 제공된 app.py를 살펴보겠습니다. #!/usr/bin/env python3 # app.py import subprocess from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) @APP.route.. 2021. 7. 21.
[Clickjacking] Click Jacking 실습 예제 - 코드를 삽입하여 Click Jacking 유도하기 (PortSwigger, 웹 해킹) PortSwigger 사이트에 있는 Click Jacking 예제 1번을 풀어보겠다 문제를 풀어보기 전에 Click Jacking 이라는 기법에 대해 간단히 알아보고 가자 Click Jacking Click Jacking 역시 웹 해킹 기법중 하나로 웹 사용자가 인지하지 못한 화면이나 버튼을 클릭하게 되면 의도치 않은 행위로 이어지도록 하는 것이 Click Jacking 이다 말 그대로 Click으로 실행되는 기법이기에 주로 시각적으로 속이는 데에서 이루어진다 자 사이트를 들어와보면 Login과 Exploit Server가 있음을 알 수 있다 그리고 우리는 문제풀이 전 carlos/montoya 의 계정 정보를 받았다 그럼 로그인을 해서 확인해보자 Login을 하면 Account actions 라는 항목.. 2020. 8. 26.
[XSS] XSS(Cross Site Scripting)공격 실습 Reflected XSS 를 사용하여 태그 삽입 (PortSwigger) XSS(Cross Site Scripts)의 기본적인 내용에 대해서는 DreamHack 의 예제1번에서 설명해놓았다 아래 링크를 타고 봐보도록 하자 hobbylists.tistory.com/entry/XSSCross-Site-Scripting%EA%B3%B5%EA%B2%A9-%EC%8B%A4%EC%8A%B5-Dreamhack-%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C 위에서 접속할 사이트는 Reflected XSS를 통해 공격해야 한다고 적혀있다 그리고 마지막 줄에 "alert" 기능을 사용해야 한다고 적혀있는데 alert는 Javascript 언어의 함수로 Message를 발생시킨다 alert() ()내의 Message를 발생시키는 Javascript 의 기능 먼저 사이트를 들어.. 2020. 8. 26.
[CSRF] - 무방비 상태의 사이트 공격 // CSRF attack, PortSwigger 예제 PortSwigger의 Academy - CSRF 문제입니다. https://portswigger.net/ Web Application Security, Testing, & Scanning - PortSwigger PortSwigger offers tools for web application security, testing, & scanning. Choose from a range of security tools, & identify the very latest vulnerabilities. portswigger.net CSRF Attack 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 사용자가 신뢰하는 사이트에서 발생하.. 2020. 8. 23.
[SQL - Injection] - My SQL DB 버전 정보 조회하기 // SQL union injection , PortSwigger 예제 PortSwigger의 Sql Injection문제 6번이다 개인적으로 여기서 막혀서 풀이까지 시간이 좀 오래 걸렸었다. Burp Suite를 사용하지 않으면 url로는 풀이가 안되는데 이유나 원리는 아직도 의문이다.. 문제의 내용은 이러하다 DB는 MySql이고 버전을 확인해야한다 https://hobbylists.tistory.com/entry/%EC%9B%B9-%ED%95%B4%ED%82%B9-Sql-Injection-%EB%B2%84%EC%A0%84%ED%99%95%EC%9D%B8-%EB%AA%85%EB%A0%B9%EC%96%B410v DB별 버전 문자열은 위에서 확인할수있다. select @@version 아무튼 우리는 위 MySql 버전정보 확인 코드를 Union삽입 코드와 적절히 섞어 사용하.. 2020. 8. 19.
[SQL Injection] - SQL injection attack, querying the database type and version on Oracle ( OracleDB 버전 조회하기)// PortSwigger 예제 sql injection 문제 5번이다 이번 문제는 OracleDB의 Version과 타입을 조회하라는 문제인듯 한데 동일하게 union을 사용해야한다 노트를 살펴보면 DUAL 이라는 기본 테이블이 존재하는데 DUAL 테이블의 쿼리를 조회해야 한다는 힌트인거같아 DB버전을 알려주는 메시지가 같이 있는듯 한데 흠 사실 그렇게 의미가 없는 메시지인것같아 좀더 아는게 많다면 저기서도 뭔가 정보가 나올수도 있겠지만 .. 아무튼 동일하게 카테고리 항목으로 들어와서 쿼리 삽입을 진행하겠다 'union select null,null from DUAL-- DUAL 테이블에 NUll 쿼리를 조회 했다 결국 컬럼 개수를 알기위해 삽입한 코드인데 컬럼의 개수는 두개가 확실한 상황으로 판명났다 'union select 'AS.. 2020. 8. 11.
[SQL Injection] - UNION attack, retrieving multiple values in a single column (단일 열에서 여러 값 검색)// PortSwigger 예제 여러 값을 단일열에서 검색하라는 문제이다 username,password 라는 컬럼이 users 테이블에 있다고 알려줬다 계정 정보를 조회한 후 administrator(관리자) 계정으로 접속해야한다. 사실 Burp Suite를 사용해야 하는데 아직도 사용법이 익숙칠 않아서 이 문제는 URL을 이용해 풀었다 힌트를 보고,, 아무튼 풀어보자 동일하게 접속하게 되면 카테고리가 존재한다 현 URL 상에서 값 입력이 불가능하기 때문에 카테고리를 선택한 후 시도해야한다 그런 다음 먼저 컬럼의 개수를 알아내기 위해 Union으로 짜인 sql 코드를 삽입한다 'union select null,null-- 컬럼의 개수가 두개임이 판명났다 사실 username과 password 두개가 있다고 알려줬지만 확실한 검증이 필.. 2020. 8. 10.
[SQL Injection] - 테이블에서 검색을 통해 관리자 계정 탈취 // PortSwigger 예제 이번 문제도 Union Sql Injection을 이용해 공격한다 다만 조금 다른점은 이전 문제들과 다르게 관리자 계정을 찾아내야 한다 위 본문을 읽어보면 'username'과 'password'라는 컬럼이 존재하며 두 컬럼은 'users'라는 테이블에 존재한다고 한다 그럼 우리는 users라는 테이블에서 username과 password 컬럼을 union을 이용해 검색해주기만 하면 된다 문제풀이 화면으로 들어왔다 별 다를게 없어보이니 Union Sql injection을 수행한다 username과 password 두 컬럼을 users 테이블에서 검색하려면 아래의 코드를 사용한다 'union select username,password from users-- 코드 삽입이 성공적으로 진행되면 에러가 발생하.. 2020. 8. 7.
[SQL Injection] - 특정 텍스트를 포함한 열 찾아내기 // PortSwigger 예제 PortSwigger의 Sql Injection 두번째 문제이다 Union Sql Injection이며 지급받는 특정 문자열을 포함하는 컬럼을 찾는듯하다 문제 페이지로 넘어오니 'FK5ILT'라는 특정 문자열을 제공했다 우리는 이 문자열이 포함된 컬럼을 찾으면 된다 동일하게 UNION으로 컬럼의 개수와 자료형을 찾아보자 'UNION SELECT NULL-- --ERROR 발생 'UNION SELECT NULL,NULL-- --ERROR 발생 'UNION SELECT NULL,NULL,NULL-- --코드 삽입 성공 컬럼 개수 3개 하나 그리고 두개의 NULL로 컬럼 개수를 찾아봤지만 에러가 발생했다세개의 NULL을 삽입했을때 코드가 먹혔으니 세개의 컬럼이 존재한다는걸 알수있다 코드가 그대로 삽입되었다 이.. 2020. 8. 7.
300x250