웹해킹(77)
-
old-16 풀이
mv() 함수에서 마지막 if문을 보면 do it!이라고 주석이 달려있는 걸 볼 수 있습니다 아마 저 조건문이 실행되면 문제가 풀릴 듯 합니다 mv() 함수에 사용자가 입력한 문자의 ASCII Code 값이 인자로 전달됩니다 do it! 이 달려있는 if문의 조건을 보니 cd가 124면 통과입니다 = ASCII Code가 124인 문자를 찾아서 키보드로 입력하면 문제 해결
2023.12.30 -
old-14 풀이
문제 사이트에 접속하니 저런 input 박스 하나만 달랑 나와있습니다 ch() 함수를 보면 document.URL로 웹문서의 주소를 가져와 ul에 넣어줍니다 그리고 indexOf() 함수로 URL에서 ".kr"의 위치를 찾고, 위치값 * 30을 ul에 저장합니다 (indexOf() 함수에 대한 정보는 아래 블로그를 참고했습니다) https://hianna.tistory.com/379 [Javascript] 특정 문자 위치 찾기 (indexOf 함수) 지난 번에는 특정 위치의 문자를 찾는 방법, 즉, index값을 입력으로 전달하여, 해당 위치에 있는 문자를 읽는 방법을 알아보았습니다. [Javascript] 특정 위치 문자 찾기 2가지 방법 (charAt 함수, 대괄 hianna.tistory.com u..
2023.12.27 -
old-26 풀이
preg_match()를 사용해서 admin을 필터링하고 있습니다 그리고 그 다음 줄에 urldecode() 함수가 보이는데, id를 넣어서 나온 리턴값을 admin과 비교해 줍니다 그러므로 solve() 함수를 호출하려면 id에 "admin" 문자열을 URL Encoding해서 값으로 넣어주면 됩니다 ?id=%61%64%6d%69%6e 위와 같이 파라미터를 넣어서 보내줬는데, 원하는 대로 동작이 되지 않습니다 아마 자동적으로 디코딩이 되는 것 같은데, " %61%64%6d%69%6e"를 한 번 더 인코딩해서 넣어주겠습니다
2023.12.24 -
old-17 풀이
버튼을 누를 경우 sub() 함수가 호출되며 코드 동작이 시작되는 방식입니다 input 박스에 입력된 값이 unlock와 같다면 ?unlock/10 페이지로 이동한다고 되어있습니다 ?unlock/10 페이지에 FLAG가 있을 것 같으므로, unlock의 값을 알아내보겠습니다 이 값을 Python으로 계산해도 되긴 하지만, 그냥 콘솔에서 unlock를 출력해서 값을 가져오겠습니다 저 값을 input 박스에 입력해 보겠습니다
2023.12.24 -
old-18 풀이
페이지에 들어가자마자 SQL INJECTION이라고 대놓고 알려주고 있습니다 소스를 보니 id가 admin이어야 문제가 풀리는 것으로 보입니다 (노란색 주석으로 admin의 no는 2라고 추가 힌트를 줬네요) preg_match() 안에 필터링되는 문자들이 적혀있습니다 저 문자들을 피해서 쿼리를 작성하고, URL에 GET 방식으로 보내주면 문제가 해결될 듯합니다 select id from chall18 where id='guest' and no=$_GET[no] SQL문을 보니 id는 guest로 설정되어있는 상황입니다 그렇다면 no=$_GET[no] 부분을 거짓으로 만들고, 뒤에 추가적으로 or no=2를 붙여주는 식으로 접근해야 할 듯합니다 위와 같이 쿼리를 작성해 주고 엔터를 누르면 문제가 풀리는 ..
2023.12.22 -
old-54 풀이
들어가는 순간 Password is 뒤에 FLAG가 한 글자씩 나옵니다 Password is FLAG{~~~}의 형식으로 화면에 출력되도록 JS 코드를 바꿔보겠습니다 출력을 담당하는 함수는 answer()인 것으로 보입니다 이 함수를 아래와 같이 바꿔줬습니다
2023.12.22