webhacking.kr(69)
-
old-40 풀이
로그인 폼에 정보들이 적혀있습니다 적힌 그대로 login 버튼을 눌러주면 URL에 GET 형식으로 값이 전달됩니다폼에 적힌 기본값들을 하나씩 바꿔주면서 변화를 살펴봤습니다 no를 0으로 → 로그인 안됨no를 2로 → Failureid를 다른 값으로 → Failurepw를 다른 값으로 → Failure 로그인이 되는 경우와 안 되는 경우가 확실하게 나뉘는 걸 보니, Blind SQLi일 것 같습니다변화가 보이는 no에 SQL 구문을 넣어보겠습니다 위 사진과 같이 값을 변경하고 login 버튼을 눌렀더니 Success - guest가 출력됐습니다no에 0||id=0x61646d696e를 넣어주겠습니다(0x61646d696e = admin의 hex값) admin 계정의 비밀번호를 입력하라고 합니다결론적으로 이..
2024.05.04 -
old-29 풀이
파일 이름, 업로드 시간, IP가 작성되는 걸 확인할 수 있습니다페이지 소스에서는 확인할 수 있는게 없으니, 프록시로 패킷을 잡아보겠습니다 패킷의 form-data 부분에 name과 filename이 들어가 있습니다filename에 인젝션 구문을 넣어주는 형식이겠지만, 아직은 구조를 모르니 값을 넣어가며 테스트해야 할 것 같네요 hello', '50', '[작성자의 IP]');# 으로 값을 넣어주니 제대로 업로드가 됐습니다들어가는 순서가 filename, time, ip니까 아래와 같은 구조로 되어있겠네요INSERT INTO [table_name] VALUES(filename, time, ip);VALUES에 들어가는 값들이 어디에 위치하는지 알기 위해 DB 이름을 추출해 주겠습니다 filename="..
2024.05.02 -
old-55 풀이
초록색 슬라임같이 생긴 캐릭터가 보입니다 스코어와 랭크도 보이네요 마우스를 움직이니까 슬라임의 눈이 빨갛게 변하면서 움직입니다 이것만 봐선...ㅋㅋ 이게 무슨 문젠지 모르겠으니, 우선 rank 페이지부터 들어가 보겠습니다 페이지 아래에 보면 MySQL 쿼리도 보입니다 score를 눌러봤습니다 URL에는 score라는 파라미터가 생겼고, 페이지에는 id 정보와 score 값이 나옵니다 score 파라미터에 숫자를 넣어보면서 페이지가 어떻게 변하는지 확인해 보겠습니다 값을 넣어줄 때마다 다른 id가 나옵니다 (0도 넣어봤는데, 0을 넣었을 때는 아무것도 나오지 않았습니다) MySQL 쿼리가 있는 거면 Blind SQLi일 확률이 높으므로, 참/거짓 값을 넣어서 결괏값이 어떻게 나오는지 확인하겠습니다 참과 거..
2024.04.15 -
old-13 풀이
대놓고 SQL INJECTION이라 적혀있습니다 제공된 소스코드가 없으니, Blind 형식이라 생각하고 문제를 풀어보겠습니다 아무 문자열, 1, 0을 입력해 본 결과입니다 1을 넣으면 result로 1이 나오고 0은 아무것도 나오지 않으며, 그 외에는 0이 나옵니다 필터링 목록 ㅡㅡㅡㅡㅡ> #, /, --, 공백, chr, &, and, |, >,
2024.04.11 -
g00gle2 풀이
메인 페이지가 읽기 전용 스프레드시트로 되어있습니다 A1 칸을 보면 FLAG{????~~}가 적혀있고, 칸을 눌렀을 때 구글 독스 링크가 하나 나옵니다 이 링크로 접속해보겠습니다 액세스 권한이 없어서 접근이 불가능합니다 다시 시트로 돌아가보겠습니다 =REPLACE(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1x7b8Wwp3jJAr6sgEG8RmuZOh-d7gpSmYvH9tmXWDq_c/edit","A1"),6,19,REPT("?",19-6)) A1 셀에 적혀있던 내용을 가져왔습니다 원본 텍스트에서 6~19번째 글자를 전부 물음표로 바꿔주고 있습니다 아마 저 구글 독스 링크에 있는 문자열이 플래그인 것 같은데, 플래그를 가져와서 함수로 가공을 해주고 있으니..
2024.04.10 -
baby toctou🍼 풀이 (PW = FLAG)
보호되어 있는 글입니다.
2024.04.08