문제의 소스 코드입니다.
admin의 pw를 구하면 문제가 풀립니다.
이것 저것 해보다 알게 된 것이 멀티바이트 문자열이구나~ 였습니다.
_ 문자를 쓸 수 없으므로 char_length와 bit_length 함수를 사용할 수 없습니다.
그래서 하나씩 넣어보면서 bit 길이를 찾아봐야 합니다.
먼저 pw의 length를 구해주면 12가 나옵니다.
각 문자의 bit length를 구하면 3번째 문자까진 16비트이고
나머지는 1비트입니다.
여기서 "아~ pw는 2바이트 3문자와 널 문자 9개로 이루어져 있구나"를 알 수 있습니다.
이제 이진 탐색으로 문자 3개를 찾아주면 됩니다.
0~65535(2^16)사이 범위 중 ord 함수로 구해준 각 문자의 ascii값이 뭔지 구해줍니다.
구해준 값을 pw에 넣어주면
문제가 풀립니다.
'write-up(web) > LOS' 카테고리의 다른 글
[Lord of SQLInjection] iron_golem write-up (0) | 2022.08.03 |
---|---|
[Lord of SQLInjection] dragon write-up (0) | 2022.08.02 |
[Lord of SQLInjection] nightmare write-up (0) | 2022.08.01 |
[Lord of SQLInjection] zombie_assassin write-up (0) | 2022.08.01 |
[Lord of SQLInjection] succubus write-up (0) | 2022.08.01 |