이번에 풀 문제는 21번!
blind sql injetion문제다.
Lord of SQL의 경험을 살려 한번 풀어보자.
우선
아무 값이나 넣어 봤더니 login fail이라는 문자가 출력되고
id에 1 pw에 ' or 1=1 #을 넣었더니
wrong password가 출력되었다.
이로써 참일 때와 거짓일 때의 출력의 차이를 찾았으니
바로 파이썬 코드를 이용해 id와 pw를 알아보자
id값이 adein이 나왔는데 admin일 것 같은 의심이 들었다. (아마 예상하는 admin 말고 다른 아이디가 더 존재하는 거 같다. 즉, 3번째 자리가 e인 id 존재)
사실 이 방법은 id값이 하나일 때 정확하지 여러 개가 있다면 각 자리의 값이 섞여서 출력될 수 있는 코드이다.(이번에는 운 좋게 3번째 자리를 제외하고는 a~z순서상 admin이 앞에 있어 예측할 수 있었지만 id값이 많을수록 부정확하다.)
확인을 위해 id에 admin을 넣고 주석처리후 pw에 아무 값을 넣어봤더니 wrong password가 나오는 거 보니 admin이 맞나 보다.
그럼 admin에 대한 pw를 알아내야 된다.
id값을 알아낸 것처럼 파이썬 코드를 짜서 길이부터 알아보면
길이는 36이고
pw는 there_is_no_rest_for_the_white_angel로 나왔다.
이제 로그인을 해보자
추가
id값 구하는 과정이 마음에 들지 않아 코드를 다시 짰다.( 너무 때려맞추기로 넘어간것 같다.)
if문을 추가하여 기존 id값들을 함께 비교하여 참 거짓을 판별하게 했다.
'Web > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr Challenge old-59 문제 풀이 (0) | 2023.07.13 |
---|---|
Webhacking.kr Challenge old-7 문제 풀이 (0) | 2023.07.10 |
Webhacking.kr Challenge old-23 문제 풀이 (0) | 2023.07.05 |
Webhacking.kr Challenge old-42 문제 풀이 (0) | 2023.07.03 |
Webhacking.kr Challenge old-61 문제 풀이 (0) | 2023.07.01 |