wargame
-
SQL Injection Advanced - SQL Injection Point 2wargame/segfault 2024. 6. 17. 10:49
목표주어진 url에서 sqli point를 찾은 후 sqli을 통해 flag를 찾아라! 웹사이트 분석2024.06.17 - [wargame/segfault] - SQL Injection Advanced - SQL Injection Point 1 SQL Injection Advanced - SQL Injection Point 1목표사이트 내에 SQL Injection이 가능한 곳이 있다. 그곳을 찾아내서 SQL injection으로 flag를 찾아내라 웹사이트 분석 - 회원가입, 로그인`/sqli_6/`에 get으로 처음 접근하면 200 상태코드를 반환하며, Pinthewhiteshadow.tistory.com위의 글에서 같은 웹사이트이므로 회원가입, 로그인, 마이페이지, index.php 등 기본적인 ..
-
SQL Injection Advanced - SQL Injection Point 1wargame/segfault 2024. 6. 17. 10:49
목표사이트 내에 SQL Injection이 가능한 곳이 있다. 그곳을 찾아내서 SQL injection으로 flag를 찾아내라 웹사이트 분석 - 회원가입, 로그인`/sqli_6/`에 get으로 처음 접근하면 200 상태코드를 반환하며, PHPSESSID를 쿠키로 세팅하도록 한다. 그 다음부터 이 url에서 PHPSESSID를 쿠키로 요청에 담아 보낸다.로그인 버튼을 누르면 `/sqli_6/login.php` 페이지로 이동한다.form 구성 : `Log In`버튼을 누르면 자기자신인 `login.php`로 post 요청을 보내며, `id는 name, password는 pw`에 담겨져 제출된다.`Sign up` 버튼을 누르면 자바스크립트로 페이지가 `signup.html`로 이동된다. 아직 아이디가 없기..
-
SQL Injection - 6wargame/segfault 2024. 6. 17. 10:48
이 페이지도 앞선 3,4,5와 동일하고 sqli는 가능하지만 error가 출력되지 않는다. 따라서 Blind sqli를 이용해야한다. 파이썬 코드로 풀어본다.import requestsurl = "http://ctf.segfaulthub.com:7777/sqli_3/login.php"print("프로그램 시작")while True: print('종료하시려면 \'quit\' 를 입력해주세요') sql_statement = input("select문 입력 > ") if (sql_statement == 'quit'): break extracted_data = '' format = "normaltic' and (ascii(substr(({}),1,1)) > 0) and '..
-
SQL Injection - 3wargame/segfault 2024. 6. 17. 10:47
normaltic / 1234 로 정상 로그인이 가능하며 post로 보낸다. 자세한 페이지 분석은 생략한다.SQL Injection 가능성 확인id에 normaltic' and '1'='1 , pass에 1234를 입력했는데도 정상 로그인이 되므로 SQL Injection이 가능하다고 판단된다. Error 출력이 되는지 확인데이터 쿼리 결과가 출력되는 곳이 아니기 때문에 Union SQLi가 불가능하다. 그렇기 때문에 에러가 출력되는지 확인해서, 만약 그렇다면 Error Based SQLi를 실시한다. 확인해보기 위해 id에 normaltic' 을 삽입해서 문법 에러를 유발한다. /*예상 sql querySELECT * from member WHERE id='___' and pass='___'여기에 n..
-
SQL Injection - Blind Practicewargame/segfault 2024. 6. 17. 10:36
목표: id 중복 검사를 하는 페이지에서 flag를 찾는 것이다. 실습 페이지기 때문에 Blind SQL Injection을 하면 되지만, 쿼리 결과가 출력되지 않기 때문에 Union sqli를 사용할 수 없으며, 에러가 발생하는지 확인해야한다. 물론 SQL Injection이 가능하다면 모든 곳에 Blind SQLi가 가능하지만 Error Based SQLi가 가능하다면 그것을 사용하는 것이 더욱 효율적이기 때문이다. 일단 id 중복 검사이기 때문에 select문에 where id가 있을 것이고 like 연산자는 사용되지 않았을 것이라고 추정한다. 물론 실습 사이트기 때문에 페이지 아래에 sql query문을 표시해주고 있지만 없다고 가정하더라도 충분히 추정가능하다.# SELECT id from me..
-
SQL Injection - Error Based SQLi Basicwargame/segfault 2024. 6. 17. 10:34
이번 wargame의 목표는 Error Based SQL Injection의 실습이다. 그래서 전체적인 웹페이지 분석은 생략한다. 다만 post로 query를 보내고 있다. id 중복 검사를 하는 페이지다. select문을 쓸 것이고 like 연산자를 쓰지 않을 것이라고 추측할 수 있다. 친절하게 실행되는 질의문도 보여준다. 만약 아무 쿼리나 넣으면 존재하지 않는 아이디라고 나온다. SQL Injection 가능성 확인normaltic' 을 삽입하면 에러 메시지가 출력된다. normaltic' and '1'='1을 넣어도 존재하는 아이디라고 정상적으로 나오는 것을 보아 SQL Injection이 가능하다고 판단된다. SQL Injection을 이용한 flag 찾기1. 에러 출력 함수 ..