본문 바로가기

웹해킹

드림핵 NoSQL-CouchDB 롸업

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');
        }
    });
});

auth 부분을 보면 get방식으로 받은 uid를 그대로 이용해서 upw를 불러온다.

입력 값에 필터링 같은게 없기 때문에 특수 구성 요소를 이용하면 원하는 정보를 얻을 수 있다.

uid에 _all_docs를 입력하고 조회하면 upw는 undefined가 된다. result.upw와 입력한 upw가 일치해야 

flag를 얻을 수 있기 때문에 upw가 undefined가 되어야 한다.

upw에 그냥 undefined를 넣거나 아무것도 입력하지 않으면 조건이 만족되지 않는다.

burp-suite를 이용해 패킷에서 upw를 지워주고 보내면 upw가 undefined가 되어서 조건문이 통과되면서 flag를 확인할 수 있다.

 

'웹해킹' 카테고리의 다른 글

Command Injection Advanced  (0) 2023.12.03
드림핵 phpMyRedis 롸업  (0) 2023.12.03
NoSQL  (0) 2023.12.03
드림핵 sql injection bypass WAF Advanced 롸업  (0) 2023.12.03
드림핵 sql injection bypass WAF 롸업  (0) 2023.12.03