write-up(web)

[Webhacking.kr] old-56

문제 검색창에 내용의 문자를 검색하면 문자가 포함된 글의 목록을 보여준다. flag{ 를 검색하면 admin 목록이 뜬다. flag{로 시작하는 문자열을 검색하며 플래그 값을 찾으면 문제가 해결될 것 같다. 문제풀이 search 검색창 최대길이는 50이므로 50 길이만큼 문자를 검색했다. import requests cookie={'PHPSESSID':''} url="https://webhacking.kr/challenge/web-33/" # flag flag="flag{" data={'search':""} for i in range(50): for j in range(48,128): data['search']=flag+chr(j) res=requests.post(url, data=data) if (re..

[Webhacking.kr] old-55

문제 flag 값은 테이블의 세번째 컬럼에 위치하는 것을 알 수 있다. 문제풀이 score 누르면 아래 그림과 같이 아이디와 점수가 나온다. score를 조작하여 blind injection을 할 수 있다. procedure analyse()를 통해 세번째 컬럼을 확인한다. length를 통해 flag의 길이를 구하고, susbstr를 통해 문자를 구하려고 했는데, substr 이용하면 "no hack" 화면이 뜨며 필터링 되는 것을 확인할 수 있다. 검색을 통해 right&left 함수가 susbtr 함수와 동일하게 동작할 수 있는 것을 알게 되었다. 이를 바탕으로 코드는 아래와 같다. import requests import string cookie={"cookie":"'PHPSESSID'=''"} ..

[Webhacking.kr] old-54

문제 Password is ? ? 부분이 script문에 의해서 계속 변화한다. 문제풀이 id가 aview인 HTML에 text를 넣고 초마다 보여준다. aview.innerHTML=x.responseText; ? function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=..