분류 전체보기 50

[휴학] DreamHack xss-2

두번째 xss 문제이다. index.html 페이지(메인) 첫번째 페이지만 다르다. 코드는 같다. 3번째 페이지에 가서 xss-1 처럼 해봤는데 안 됐다. 그래서 다른 xss 공격을 찾아봤고 good이 뜨자마자 xss-1에 사용했던 태그와 내용 그대로 가져왔다. xss">를 이용해 뒤에 내용을 필터링을 막는다고 생각했다. 다시 good이 뜨고 flag가 나오지 않았다. 다음으로는 특수문자 필터링이 아닐까 싶어서 한 번 해보았는데 good이 떠서 모든 기호를 필터링 해보았다. 모든 기호를 필터링해도 flag가 나오지 않자 태그 문제임을 알게 되었다. 처음에 시도했던 xss"> 에서 힌트를 얻었다. 공격 성공 https://secuhh.tistory.com/7 xss stored 공격 https://noir..

웹해킹/DreamHack 2022.09.14

[휴학] DreamHack xss-1

xss 기본 문제를 풀 것이다. 파이썬 소스 페이지는 문제에서 제공해준다. 첫번째 페이지이다. 2번째 페이지이다. 3번째 페이지이다. 3번째 페이지인 /flag에 여러가지를 넣어봤다. 어떤 문구를 넣든 good이라는 결과가 나왔다. *주관적임 /flag쪽 코드이다. FLAG.strip()을 실행시켜야할 것 같다. 위 함수에서 알게된 부분은 위 ip주소(127.0.0.1)가 cookie를 가지고 있다는 것밖에 해석하지 못했다.' xss의 이해도가 낮은 것 같아서 개념정리를 했다. xss(Cross-Site Scripting): OWASP에도 몇년동안 계속 올라오는 단순하고 악질적이다. 클라이언트 사이드 취약점 중 하나이며 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에 해당 스크립트를 ..

웹해킹/DreamHack 2022.09.14

[휴학] DreamHack Cookie

너를 위해 구웠지~ 세 번째 문제이다. 코드를 분석하기 위해 비주얼코드를 사용하여 오픈하였다. 제공해주는 웹으로 접속했다. 게스트 로그인을 했다. admin으로 로그인 하기 위해선 flag가 필요하다. 코드 내용을 보면 허점이 있다. get으로 이용자가 전송한 username 입력값을 가져오고 try에서 users 변수에 이용자가 전송한 username이 있는지 확인한다. 그 쿠키값을 guest에서 admin으로 바꾸면 될 것 같다. 문제에서 참고하라고 한 강의이다. Value값을 guest → admin으로 바꿨다.

카테고리 없음 2022.09.08

[휴학] DreamHack devtools-sources

오늘 풀 문제이다. 이 문제는 로드맵을 따라가면 제일 먼저 발견해야 했을 문제지만 지나쳐버리는 바람에 두번째 문제를 풀고 푼다. flag를 찾아야 한다. 전에 풀었던 문제도 코드를 봤으니 이번에도 코드를 살펴볼 예정이다. js에 실행을 시키거나 어떻게 해야할지 나올 것 같았으나 한줄로 되어 있는 바람에 경악을 했다. 그래서 Ctrl + U 로 소스전체 보기를 통해 찾기로 했다. 코드로만은 발견할 수 있을 것 같지 않았다. 특히 js는 막막했다. 검색을 이용해서 flag를 찾고자 했으나 없었기에 코드를 하나하나 분석하는 방법밖에 없다고 생각했다. 코드를 읽다가 말고 힌트를 찾기 위해 다시 문제로 돌아왔고, 개발자 도구의 Sources 탭을 이용하기로 했다. 개발자 도구에서도 Ctrl + F 가 가능했다. ..

웹해킹/DreamHack 2022.09.08

[휴학] DreamHack Web Hacking, session-basic

오늘 풀 문제는 session-basic이다. 문제에서 제공한 참고문헌이다. (강의 코스) 먼저 코드를 열어보니 flask를 처음 접할 수 있었고, 회색 글씨와 함께 경고문구가 있었다. 상관없겠거니 넘어갔으나 코드를 분석하는 과정에서 이상함을 느낄 수 있었다. 코드로 웹을 불러오고 싶어도 계속되는 404와 500의 조우에 초심으로 돌아가고자 첫번째 문단의 코드를 봤는데 flask가 문제였다... 설치를 위해 파이썬 버전과 pip 버전을 확인하며 준비물은 잘 있나 체크한 후 설치해 주었다. 이후 임의로 만든 웹에 들어가 개발자 도구로 살펴보았지만 삽질이었다. (index.html과 login, admin 확인) 문제 사이트에 들어가니 제공해주는 웹이 있었고 반가웠다. 로그인 화면을 발견하였고 guest와 ..

웹해킹/DreamHack 2022.09.07

[Whois] 시스템 해킹 - Format String Bug

23번째 줄을 보면 조건문 안에 or가 있다 이 조건문을 탈출해야 system 함수가 발동된다. 1. buf와 s2 값을 비교해서 같을때 2. discharged_past 값이 550이 아닐때 두 조건을 반대로 만족시켜야 한다. discharged_past를 살펴보면 메모리 주소가 00 00 00 00 00 40 40 AC 인 것을 확인할 수 있습니다. 일단 위 코드를 보면 buf부터 차례대로 2칸, s 5칸 s2 8칸을 차지합니다. 포맷스트링을 이용해서 공격을 할 것인데 나눠서 설명을 하겠습니다. %550c: 550칸 띄워준다, 550byte를 확보한다, 550을 입력받는다. %10%n: 10번째에 AAAAAA: 패딩값, 쓰레기값이다 원하는 값을 10번째에 넣어주려고 했으나 %550~$n까지 총 10칸..

시스템 해킹 2021.12.08

[Whois] 시스템 해킹 - OOB(Out-Of-Bound)

v4를 통해 숫자를 입력받고 fakekey[v4] 배열처럼 생겼지만 아닌 변수에 캐릭터형을 입력받습니다. 처음 while조건을 빠져나가기 위해선 fakekey[0] 번째가 #이어야 합니다. 원래 10(0x23) 이었으나 %c로 받으므로 보기 쉽게 캐릭터형으로 바꿔주었습니다. * fakekey[v4] 입력시 주의할 점: " %c" => 스페이스바 처음에 fakekey[0] 에 ' #'을 입력했을 때는 쉘로 들어가지 않고 root@kali 머무르고 있었습니다.(루트) 그 이유는 20번째 줄 조건문을 충족시키지 못했기 때문인데 key에 ILOVEPWN을 넣어주어야 했고, 17번째 줄부터 key[0] 번째부터 입력된다는 것을 알았습니다. 키는 char[] 입니다. 해당 변수에 들어가보니 fakekey보다 위에 ..

시스템 해킹 2021.12.06

[Whois] 시스템해킹 - Integer Issues

v3에 1-4까지 값을 입력받아 해당 번호에 맞는 알바를 하고 포인트를 받는 코드입니다. 시작 포인트는 30입니다. system() 함수를 실행시키기 위해선 ② v3값이 999이여야하고 ① v4값은 정확히 4억보다 커야합니다. ① 4번을 누를씨 1포인트씩 마이너스가 진행됩니다. 30포인트를 모두 깎자 정수 오버플로우가 발생해서 v3의 값이 42억대의 숫자로 바꼈습니다. ② 입력을 받는 역할이었던 v3에 999를 입력하자 두 가지 조건문을 탈출하고 system() 함수가 발동되어 해당 쉘로 이동합니다. 해당 쉘에서 flag를 보는 명령어 입력 후 답을 확인합니다.

시스템 해킹 2021.12.06

[Whois] 어셈블러 - 해석2

IDA를 이용하여 f5를 누르고, Pseudocdoe를 확인해 주었습니다. v4의 입력을 받는 것을 확인하고 assembly_calc 라는 함수로 이동해서 어떤 기능을 하는지 확인해 봅시다. a1을 인자로 받아주고, a1 xor 0xabcd 값이 0x123464443 값과 일치하면 flag를 뱉어냅니다. and & 곱하기 연산, 두 값이 모두 1일 때 1 or | 더하기 연산, 한 값이라도 1이면 1 xor ^ 두 값이 다를 때, 1이 홀수개일 때 1 123464443과 abcd를 xor연산한 값이 a1일 때와 같은 말이므로 10진수값을 입력하여 해결했습니다.

기타 이론 2021.11.29