본문 바로가기

분류 전체보기

(312)
DFS DFS 그래프를 탐색할 때 쓰는 알고리즘이며 어떤 노드부터 시작해 인접한 노드들을 재귀적으로 방문하며 방문한 정점은 다시 방문하지 않으며 각 분기마다 가능한 가장 멀리 있는 노드까지 탐색하는 알고리즘 DFS(u, adj){ u.visited = true; for (each = adj[u]){ if (v, visited == 0) DFS(u, adj) } } #include #include using namespace std; const int v = 10; vector adj[v]; int visited[v]; void dfs(int u){ visited[u] = true; cout > m; // 입력 받는 부분 for (int i = 0 ; i < n; i++){ for (int j = 0; j < m..
crawling 페이지를 보면 URL 주소를 입력을 했을 때, 그 주소에 대한 메인페이지를 크롤링해서 출력해 준다. @app.route('/admin') def admin_page(): if request.remote_addr != '127.0.0.1': return "This is local page!" return app.flag 소스 코드를 보면 /admin 경로로 이동을 할 때 127.0.0.1이 주소여야 하는 조건이 맞아야지 flag가 출력이 된다. refere에 127.0.0.1로 수정을 하고 보내면 되겠다고 생각을 했다. ip = lookup(urlparse(url).netloc) if ip == False or ip =='0.0.0.0': return "Not a valid URL." res=request..
Tomcat Manager Tomcat Manager취약점으로 관리자 인증을 위한 페이지가 쉽게 인지 가능하거나 유추로 인해 접근이 되는 경우이다. 기존의 Tomcat Web 환경의 관리자 콘솔을 사용하지 않아 톰캣 폴더 안에 있는 manger 폴더명을 바꾸지 않아서 생기는 취약점이다. 기본 소스코드를 보면 username은 나와있지만 password는 나와있지 않다,,, password값을 얻으면 로그인을 할 수 있을 거 같다...! 도커 파일을 보니 tomcat-users.xml 에 정보가 들어있을 거 같다.,! 직접 접근을 하면 404 오류가 뜬다,,, 개발자 모드로 페이지 소스코드를 보면./image.jsp의 file파라미터를 이용해서 path traversal 공격을 하면 되겠다고 생각을 해서 버프 스위트 툴을 실행시켰다..
funjs 입력하는 부분이 계속 시간이 지날 때마다 움직인다. 여기 문제는 소스파일은 따로 없다,,, 개발자 모드에 들어가니 안에 가 작성이 되어있다. 스크립트 코드가 난독화 되어 있다,,,,,하나씩 분석해 보자.! var box; window.onload = init; // 초기화 하는 부분 function init() { box = document.getElementById("formbox"); 여기에서 밑에 함수 호출 setInterval(moveBox,1000); } // 여기가 입력하는 공간 움직이는 곳! function moveBox() { box.posX = Math.random() * (window.innerWidth - 64); box.posY = Math.random() * (document.do..
weblog-1 5개의 문제를 풀면 되는 문제이다. 로그를 보면 board 페이지에서 Blind SQL 인젝션을 했던 기록이 적혀있다. 참일 경우 500 상태코드를 보여주고 거짓일 경우 200이 되는 로그이다. sort=if(ord(substr((select group_concat(username,0x3a,password)from users),18,1))=49, (select 1 union select 2),0) select group_concat(username,0x3apassword) from users => user 테이블에서 username 과 password 을 출력 (username:password)형식 substr((select group_concat(username,0x3a,password) from us..
2주차(개념) ∙ 그래프 이론 기초 - 정점(verteix) : 노드라고 불리며 그래프를 형성하는 기본 단위이고, 분할할 수 없는 객체이자 "점"으로 표현한다. - 간선(Edge) : 정점을 잇는 선을 의미한다. ex) "어떠한 위치나 어떠한 사람" 으로부터 "무엇인가를 통해 간다" => 정점 : 어떠한 사람, 간선 : 무엇가를 통해 간다 - 가중치 : 정점과 정점사이에 드는 비용을 뜻한다. ex) 1번노드와 2번노드까지 가는 비용이 한칸이라면 1번노드에서 2번까지의 가중치는 한칸이다. ∙ 트리(Tree Data Structure) 자식노드와 부모노드로 이루어진 계층적인 구조를 가지며 무방향 그래프의 일종이자 사이클이 없는 자료구조를 의미한다. ∙ 이진트리(BT, Binary Tree)와 이진탐색트리(BST, Bina..
login-1 ∙ 알고 있어야 하는 지식 - 레이스 컨디션 공격 기법 한정된 자원을 동시에 이용하려는 여러 프로세스가 자원의 이용을 위해 경쟁을 벌이는 현상을 이용하여 root 권한을 얻는 공격 기법이다. 로그인 페이지에서 admin으로 로그인을 하면 되는 문제이다..! 회원가입 페이지에서 admin계정이 만들어지고 로그인까지 된다,,,,? 아마도 Level에 있는 guest 부분이 admin으로 변경이 되어야지 flag 값이 출력이 될 것 같다.. ∙ 소스코드 분석 userLevel = { 0 : 'guest', 1 : 'admin' } userLevel에 따라 guest, admin이 결정이 된다. @app.route('/user/') def users(useridx): conn = get_db() cur = co..
SSTI(취약점 개념) Template을 사용하여 %s 부분에서 {{data}} 을 입력을 하면 해당 {{{ }} 안의 코드가 실행이된다,,!!