첫 CCE 대회였는데 하필 여행일정에 대회날이 겹쳐서 차에서 대충 몇문제 풀었다... 대충 본문제는 네문제였고 그중 한문제는 좀 복잡해서 따로 공부좀 하고 Writeup을 올리겠다. 1. OSJarvis자바로 짜여진 웹인데 활성화 되어있는 기능은 파일업로드 한가지 뿐이었다.파일 업로드 코드는 다음과 같다.public String execute() throws Exception { if (uploadFileName != null) { try { String uploadDirectory = System.getProperty("user.dir") + "/uploads/"; File destFile = new File(uplo..
toctou 문제이다. 일단 baby toctou와 비슷하게 cat flag.php는 못한다.api.php내용은 다음과 같다. webhacking.kr 이나 202.182.106.159로 온 응답이 아니면 exit된다.이제 이건 dns rebinding attack으로 우회할 수 있는데 dns rebinding attack은 dns를 리바인딩 했을 때 ip 가 두개 이상이 리턴되면서 예상했던 ip와 다르게 공격자의 ip로 요청을 보낼 수 있다. 뭐 ssrf나 sop 우회등에 쓰이는데 인터넷에 자료 참고하면 될것 같다.https://lock.cmpxchg8b.com/rebinder.html rbndr.us dns rebinding service lock.cmpxchg8b.comrebinder 사이트이다. ..
제목이 NotSQL인걸 보니 NoSQL 문제인듯 하다일단 사이트의 no 쿼리에 1과2를 날릴 수 있고 그 외엔 뭐 찾을 수가 없었다.그래서 일단 개발자도구의 스크립트가 있길래 그걸 봐줬다. function getQueryVar(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i ${res.data.view[i].subject}`; }}else{ q = `query{ view{ no, subject, content } }`; xhr = new XMLHttpRequest(); xhr.open("GET", "..
하... 너무 힘들었던 문제이다.sql injection문제는 웬만하면 머리싸매고 고민하면 풀리는데 이 문젠 이틀동안 머리싸매고 안되가지고 writeup보고 풀었다.저기 no값이 1혹은 true 값이면 저렇게 result에 1이라고 뜬다.그리고 필터링 값들을 입력하면 no hack이라 뜨는데 union,and,띄어쓰기,limit,where 등등 거의 대부분 필터링 되어 있다.일단 아무것도 모르니 db구조를 파악해야한다.from requests import getfrom tqdm import tqdmhost = "https://webhacking.kr/challenge/web-10"strings = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW..