김승현
[Dreamhack : Web] NoSQL-CouchDB 본문
문제


couchDB 함께하기 실습 문제이다.
풀이

사이트에 접속하면 uid, upw 입력칸이 있고 login하는 칸이 있다.
app.post('/auth', function(req, res) {
users.get(req.body.uid, function(err, result) {
if (err) {
console.log(err);
res.send('error');
return;
}
if (result.upw === req.body.upw) {
res.send(`FLAG: ${process.env.FLAG}`);
} else {
res.send('fail');
}
});
});
여기가 uid, upw 등을 입력 받은 코드인데 강의에서도 얘기했듯이 입력받는 uid의 입력에 대한 검사가 없다.
그렇다면 uid에 특수 구성요소인 _all_docs를 넣어서 하면 될 것 같다. 강의에 의하면 _all_docs에 대해서 조회했을 때
비밀번호는 없기 때문에 undefined가 되는데 이걸 만족시키기 위해선 전송할 때 upw 자체가 없어야 되는 것 같다.
나는 burp suite를 이용해봤다.

프록시 탭에서 이렇게 intercept했고 Action 버튼을 눌러서 repeater로 보내주었다.

repeater 탭에서 이렇게 전송할 정보들을 볼 수 있다.

그리고 upw가 undefined가 되도록 지워서 send했다.

그러면 오른 쪽 응답에 flag가 뜬 걸 볼 수 있다.
curl을 사용해서 하라고 하는데 어떻게 하는지 잘 모르겠어서 그냥 이렇게 다르게 풀었는데 풀렸다ㅎㅎ

'Web > Dreamhack : Web' 카테고리의 다른 글
[dreamhack : Web] Command Injection Advanced (0) | 2023.02.26 |
---|---|
[Dreamhack : Web] phpMyRedis (0) | 2023.02.26 |
[Dreamhack : Web] sql injection bypass WAF advanced (0) | 2023.02.24 |
[Dreamhack : Web] sql injection bypass WAF (0) | 2023.02.24 |
[Dreamhack : Web] blind sql injection advanced (0) | 2023.02.24 |