반응형

no와id, pw를  넣을수 있는 입력창이 있고

https://webhacking.kr/challenge/web-29/?no=0&id=guest&pw=guest


1,guest,guest일때만 로그인 성공페이지로 들어간다. Susses

2||1=0# fail

2||1=1# 일때 반응이 다르다. Sussess





제한

띄워쓰기,select,or,limit,char,ascii


되는거

%,||,&&,#,-,+,where,union,(,), ' , ",0x,substr



일단 id부터 찾아보자


2||length(id)=1...를 통해 길이를 찾고

2||substr(id,1,1))=0x1....를 통해 찾았다.(ascii가 막혀서 16진수로 우회)


id를 찾을때는 참일경우 admin password를 입력하는 창이 나온다. 


id=ADMIN이 나온다.(다음부터는 admin 먼저 해보고 시작해야겟다.)


바로 접근해보자 2||id=admin 실패가 뜬다.

다른 방법으로도 접근해보자. 

https://ko.wikipedia.org/wiki/ASCII

이표를 참조해 16진수로 admin을 만들고 접근 


2||id=0x61646D696E


이런식으로 접근하면 admin password를 입력하는 창이 나온다. 비밀번호를 결국 알아야한다.


sql injection이 되는 이전 페이지로 돌아가서 다시 pw를 찾아보자


?no=2||length(pw)=1 이런식으로 쿼리를 만들고 pw의 길이를 찾고 

?no=2||substr(pw)=0x..  pw도 이런식으로 찾아보자


admin password창이 있는곳으로 이동한다면 참이다.




##########################################


시도하는 도중 ssl인증 오류가 생겻다.ㅠ 여러방법을 시도해봤지만 

res=requests.get(geturl,cookies=cookies,verify=False) 

verify=false라는 옵션을 추가해주었더니 동작은 했다. 오류창이 계속 뜨는데 코드에



from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)



를 추가해 주어 무시하게 해주었다. 사이트의 인증서가 만료되어서 그런거 같다.


#############################################


밑의 코드를 돌려보면 pw또한 구할수있다.


얻은 pw는 2||id=0x61646D696E 1차접근한후 pw를 입력해주자.


그런데 또 답이이상하다.


pw:LCK_ADMIN 9자리밖에 나오지 않는다.


두번째 단어는 guest의 u와 겹쳐서 guest 로그인 메세지가 떠서 그런것이라고 한다...


webhacking.kr 40번.py









반응형

'보안 > webhacking' 카테고리의 다른 글

webhacking.kr old-42  (0) 2019.12.05
webhacking.kr old-41  (0) 2019.12.05
webhacking.kr old-39  (0) 2019.12.02
webhacking.kr old-38  (0) 2019.12.02
webhacking.kr old-36  (0) 2019.12.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기