Web Hacking/LOS(Lord Of SQL injection)

Problem Problem Analysis 정말 쉬운 문제다. 딱히 조건 없고 이전 문제에서 끝에 and 1=0으로 거짓이 붙은게 전부. id로 admin을 주고 뒷 부분을 주석처리 해버리면 끝. Exploit 정말 쉬운 문제다. 딱히 조건 없고 이전 문제에서 끝에 and 1=0으로 거짓이 붙은게 전부. id로 admin을 주고 뒷 부분을 주석처리 해버리면 끝.
Problem Problem Analysis 이번엔 admin 키워드 입력 자체를 금지하지 않고 다른 문자열로 대체해버린다. 물론 아무 문자열도 아닌 단순히 지워버린다고 생각하면 된다. strtolower 함수는 대문자를 소문자로 바꿔버리는 함수라서 이전 문제처럼 Admin으로 풀 수 없다. str_replace 함수가 바로 해당 문자열을 다른 문자로 대체해주는 함수인데 취약점이 있다. 바로 문자열 중에서 해당 키워드를 한 번만 바꾸고 바꾼 뒤 문자열에 대해서는 검사하지 않는다. 따라서 admin을 쪼개서 사이에 admin을 넣으면 사이의 admin은 지워지고 쪼개진 부분은 합쳐져 admin이 될 것이다. Exploit 쪼개는 것은 단순히 admin키워드를 인식하지 못하도록 하면 된다. ?id=admad..
Problem Problem Analysis 이번에는 매우 간단해 보이는 문제지만 한 가지 조건이 걸려있다. 바로 admin 키워드 입력 금지다. 물론 admin의 결과 값을 가져와야 solve가 되므로 admin 키워드 입력을 우회하면서 admin 값을 가져와야 한다. 여러 우회 기법들이 있지만 가장 쉬운 방법인 Admin을 이용하기로 했다. admin 키워드만 검사하기 때문에 Admin은 검사하지 않고 결과 값은 같다. Exploit
Problem Problem Analysis 이번 문제는 이전에 풀었던 blind injection 문제에 약간의 변화와 조건을 곁들인 문제다. 조건은 OR과 AND 사용 금지인데 우회 법은 이전에 설명했으므로 빠르게 exploit 하겠다. Exploit 우선 blind injection이기 때문에 python을 쓰면 손쉽게 풀이가 가능하다. import requests url = "https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php" cookie = {'PHPSESSID':'ec8s5fjt73b18gp3r1ns2g2e7t'} len = 0 while True: query = f"1\' || id=\'admin\' && length..
Problem Problem Analysis 이번 문제는 앞의 문제와 비슷한 문제로 조건이 바뀐 게 끝이다. 조건은 OR과 AND 사용 금지. 하지만. || 혹은 &&로 OR과 AND를 대체할 수 있어 매우 간단하다. 참고로 & 또한 URL에서 특수한 기능을 하기 때문에 encoding 해주어야 한다. (&의 hex 값은 26) Exploit ?pw=1' || id='admin
Problem Problem Analysis 첫 번째 두 번째 문제와 비슷하지만 한 가지 중요한 조건이 있다. 바로 공백을 쓰지 못한다는 점. 하지만 매우 쉽게 벗어날 수 있는데 바로 공백 대신 %0a 혹은 ()를 사용하면 된다. %0a는 URL encoding에서 개행을 의미하는 것으로 공백 대신 사용하면 공백으로 취급해준다. 그래서 결국 공백 대신 ()을 써서 구분해주거나 %0a을 쓰면 끝 Exploit ?pw=1'OR%0aid='admin'%23 ?pw=1'OR(id='admin')%23
Problem Problem Analysis 이번엔 조금 특수한 문제다. 단순히 논리 오류가 아닌 blind injection 기법을 사용해야 한다. 문제를 보면 pw를 한번 받고 또 해당 pw를 따로 검사해서 제대로 값이 불려 오는지 검사한다. 즉, 알맞은 pw를 찾아야 문제가 풀리는 것이다. 그럼 이제 admin의 비밀번호를 찾아야한다. 비밀번호를 찾기 위해선 특수한 함수를 사용해야 하는데, 여러 함수들이 있다. 예를 들어, like, mid, left, substr 등이 있고 이 중에서 골라서 사용하면 된다. 이번 문제에서 사용할 substr은 다음과 같이 인자를 받는다. substr(해당 칼럼, 문자 위치, 문자 개수) 이 함수는 본래 문자열을 추출하기 위한 함수로 substr(pw, 1, 1)이..
Problem Problem Analysis 이번엔 약간의 조건이 생기기 시작했다. 싱글 쿼터, 더블 쿼터, ` 금지, pw가 아닌 no라는 특수한 숫자 부분 우선 싱글 쿼터와 더블 쿼터를 사용할 수 없어 id='admin'이라고 일러줄 수가 없다. 그렇다면 너무 돌아가지 말고 no값을 맞춰주면 되는게 아닐까? Exploit ?pw=-1 OR no=2 ?pw=-1 OR no=2 일부러 앞의 no에는 -1을 줘서 틀린 값을 주고 앞에 2를 주어 참이 되도록 하였다.
filime
'Web Hacking/LOS(Lord Of SQL injection)' 카테고리의 글 목록