3가지 링크와 마지막 3에는 힌트가 있다.
첫번째 링크와 두번째 링크는 Apple ,Banana라는 문자열과 입력창이 있었으며 세번째에는
column : id,no
no 3's id is password
이런식으로 힌트가 주어졋다.컬럼명과 no3의 id가 password라는 힌트이다.
그외에 소스에는 별다른 힌트가 없었다.
입력창에 기본적인 sql injection시도결과 막혀있었으며 get방식으로 보내지는 no에도 sql injection을 시도했으나 Access Denied라는 출력을 띄웠다.
no=4에도 접근해보았다. 어떠한 글도 없이 입력창만 있었으며 그뒤에도 마찬가지였다.
이걸로 미루어 볼때 4이상의 no은 없으며 결과가 false일 경우 입력창만 보이는거 같다.
no에 걸려있는 필터링을 피해 blind sql injection을 시도해 보아야 할거같다.
-------------------------------------------------------------------------------------------------------------------
2번문제를 풀고 9번 문제로 넘어왔다.
컬럼과 우리가 원하는 비밀번호가 들어있는곳은 알수있다.
ascii,select,띄워쓰기,limit,and,|,--,or,%등 여러가지가 막혀있다 확인해 가면서 시도해 보았다.
(,),in,length,if,like,# 등은 막혀잇지않았다.
no=3에 id값의 길이를 알아내고 해당 id값을 알아내보자. blind sql injection은 앞으로도 파이썬 파일로 남
길거같다. 여기서 이해안되는 구문들이 쓰인다. 만약 설명해 줄수 잇다면 댓글로 남겨주세요 ㅠ
길이를 알아내는 부분에서 일단 구문이 이해가 가지않는다.
no=if(length(id)in(id_length),3,0)이라는 구문이 사용되는것인데 여러가지 의문점이 든
다. 먼저 length(id)in(id_length)이것이 참일려면 id중 하나라도 길이가 맞으면 "3"를 출력하는 것으로
해석할수 있으나 no=3에 해당하는 id값의 길이와 비교한다. 즉 다른값이 있어 참일때도 no의 id에 길이
가 맞아야 참일때의 값을 리턴한다는것이다. 정말 이상한 구문이다. 어쨋든 이구문을 통해 길이를 구할수
있었고 if(substr(id,n,1)in(hexNum),3,0)이 참일때 문자를 추출 하면 될것이다.
'가 막혀있기 때문에 16진수를 이용하였다.
2번이 모든 정보를 하나씩 찾는게 힘들었다면 이문제는 필터링을 우회하는것이 어려웠다.
if문을 처음 알았고 like대신 in을 사용해 보았다. like를 사용해도 같은 결과를 얻을수 있을것이다.
그리고 답은 대문자로 나오는데 아무리 넣어도 안되더라 ㅠ 소문자로 입력하여야 클리어된다 . 마지막까
지......
13번 문제는 더욱 어려울 것으로 예상된다.
얼마나 걸릴지 모르겠다.... 코드는 밑에 첨부 하겠습니다.
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-11 (0) | 2019.11.24 |
---|---|
webhacking.kr old-10 (0) | 2019.11.23 |
webhacking.kr old-08 (0) | 2019.11.23 |
webhacking.kr old-07 (0) | 2019.11.23 |
webhacking.kr old-06 (0) | 2019.11.23 |
최근댓글