SlowTurtle_

천천히 그러나 끝까지 완주

728x90

분류 전체보기 65

[Dreamhack] DOM XSS

[Dreamhack] DOM XSS 우선 둘러보는데 평소와 다른 flag를 입력할 수 있었다. vuln?param=#dreamhack 그래서 vuln을 들어가보니 이곳부터 #을 사용하고있는 것을 볼 수 있었다. 그래서 우선 vuln코드를 봤다. {% extends "base.html" %} {% block title %}Index{% endblock %} {% block head %} {{ super() }} {% endblock %} {% block content %} {{ param | safe }} {% endblock %} 처음에 핵심을 잘 모르겠어서 다시 강의를 봤다. DOM XSS는 브라우저 단에서 자바스크립트로 인해 발생하는 취약점을 이용함임을 다시 짚고 생각을 해봤다. 따라서 저 scrip..

[Dreamhack] Relative Path Overwrite Advanced

[Dreamhack] Relative Path Overwrite Advanced 바뀐 부분만 좀 봤더니 var url =~ 과 if절에 filter !==가 filter ===로 바뀌었다. url변수에 새로운 url을 받아오는 것을 알 수 있었고 filter가 undifined되면 바로 nope !!을 출력한다는 것을 알았다. var filter = ["script", "on", "frame", "object"]; fiter.js는 동일하게 script, on, frame, object로 동일했다. advanced에서 핵심은 filter.js를 어떻게하면 발동하지 않고 지나갈까이다. 상대경로니 처음에 학습했던대로 /vuln.php/;alert(1);// alert(1)을 하고 뒷 부분의 자바스크립트를 주..

블라디미르 팔란트 : 한국 은행 사이트 매우 불편하고 위험하다.

블라디미르 팔란트는 광고차단 프로그램인 '애드블록 플러스(Adblock Plus)'를 만든 사람이다. 우리나라에 은행 사이트를 공개적으로 지적했는데 상당히 흥미로운 이야기라서 가져와봤다. 현재는 취약점 패치가 모두 이뤄졌고 배포하는 절차만 남았다고 한다. 이번 기사로 발등에 불이 떨어져 더욱 빨리 진행될 것 같다. 은행을 사용할 때 설치해야하는 프로그램이 정말 많아 불편하고 이용한 뒤 삭제하는 과정이 귀찮았지만 보안의 중요성을 아는 나는 열심히 따랐지만 배신감이 들었다. 은행 보안에 대해서는 정말 많은 취약점이 있고 문제가 많다고는 익히 들어 알고있었지만 이 정도일지는 몰랐다. 믿고 맡겨야하는 은행이 이렇게 불안정하다면 무엇을 믿어야하는 것일까? 중학생 때 금융보안을 생각하며 꿈을 키웠는데 10년이 지난..

News 2023.01.10

[Dreamhack] Relative Path Overwrite

[Dreamhack] Relative Path Overwrite 소스코드부터 분석해보자. Relative-Path-Overwrite Home Vuln page Report 위는 index.php이다. page파라미터를 받아 php파일을 include해주는데 .., :, /문자를 필터링하여 LFI공격을 막는다는 것을 알 수 있다. 위는 vuln.php이다. 우선 param이라는 파라미터에 검사하는 키워드가 없다면 pre태그 내에서 innerHTML로 삽입된다. 또한 ' 을 공백으로 replace한다. 따라서 자바스크립의 템플릿 리터널을 벗어날 수 없다는 것을 알 수 있다. 만약 filter.js를 피할 수 있다면 필터링을 우회할 수 있다. 한가지 더 짚어야할 것은 filter.js는 상대주소로 로드되고 있..

[Dreamhack] CSS Injection

[Dreamhack] CSS Injection 코드가 너무 길어서 하나 하나 필요한 부분만 첨가하기로 했다. 우선 로그인하는 부분만 보면 guest로 하고싶은 욕구를 참지 못하고 guest : guest로 가입했다. guest로 로그인 후 메인 페이지를보니 Private memo Service라는 문구를 보니 id마다 memo를 별개로 하겠구나 라는 생각이 들었고 그럼 flag는 admin으로 로그인한 memo에 있겠구나 생각했다. # Add FLAG execute( 'INSERT INTO memo (uid, text)' 'VALUES (:uid, :text);', { 'uid': adminUid[0][0], 'text': 'FLAG is ' + FLAG } ) 이 코드를 보면 uid, text 그러니까..

728x90