Detective Boys | |
Profile | |
Japanese name: | 少年探偵団 (Shōnen Tantei-dan) |
---|---|
English name: | Junior Detective League |
Members: | Conan Edogawa (leader) Ai Haibara (second-in-command) Mitsuhiko Tsuburaya (third-in-command) Ayumi Yoshida Genta Kojima |
Gadgets: | Detective Boys Badge Wristwatch Flashlight Kamen Yaiba Voice Changer |
Guardians: | Hiroshi Agasa Sumiko Kobayashi Rumi Wakasa |
Age: | 6-7 |
Gender: | Male and Female |
Statistics | |
First appearance: | Manga: File 17 Anime: Episode 1 |
Appearances: | Detective Boys Appearances |
The Detective Boys (少年探偵団Shōnen Tantei-dan?), also known as The Junior Detective League in the English Funimation adaption, are the pre-adolescent detectives with whom Conan solves the occasional crimes in which he and his Teitan Elementary classmates stumble into.
Canvas Group Name: 59 Student 1: Eshan Bhargava Student 2: Daniela Olano CSE120 HA4: Cache Detective Due Date: Tuesday 11/19/19 1) Consider a 16-bit processor with a directly mapped cache with 32 Byte cache blocks and 4 entries. Fill out the bitfields in the address map below showing how the address bits are used to lookup a value in the cache. How to clean apt cache? If you want to clear the apt cache, there is a dedicated command to do that. So don’t go about manually deleting the cache directory. You may think it is apt-cache command but that’s deceiving. Simply use the apt-get command with clean as argument: sudo apt-get clean. Particularly after the case involving a sizable cache of stolen Italian gold coins, Ayumi, Genta and Mitsuhiko developed a taste for detective work and impulsively decided to become investigators themselves, mostly for fame and glory.
The Detective Boys were informally founded when Ayumi Yoshida and Genta Kojima decided to investigate a mansion which was once a murder site and had been abandoned. Conan and his classmate Mitsuhiko Tsuburaya were drafted into accompanying the two, and the foursome entered the house. In the course of this adventure, Conan found out that the house was still inhabited by the mother and son of the murder victim; the son had killed his father in a fit of rage over his abusive behavior, and his mother had subsequently locked her own son in a dungeon beneath the house to wait until the deed's time-bar had passed. After Conan succeeded in exposing the two, they were arrested and the case was resolved.[1]
In time, the four kept stumbling into more and more criminal cases, which were resolved thanks to Conan's deductive skills and initiative. Particularly after the case involving a sizable cache of stolen Italian gold coins,[2] Ayumi, Genta and Mitsuhiko developed a taste for detective work and impulsively decided to become investigators themselves, mostly for fame and glory. After advertising their services in school,[3] they have become actively involved in many criminal cases provided by their schoolmates, though more often than not they keep accidentally coming upon such during their free-time activities. Some time later, their new classmate (and former Black Organization member) Ai Haibara was drafted into the group. Two adults also joined this group informally, namely Professor Hiroshi Agasa, who provides the group with special gadgets to aid them in their adventures, and their class teacher Sumiko Kobayashi, a mystery novel enthusiast who proclaimed herself their manager.
In most cases, the Detective Boys act more like aides to Conan, who is the group's (mostly undisputed) leader due to his intelligence, extensive criminal knowledge and experience. In this role they function mostly as additional pairs of eyes who provide Conan with trivial-seeming but important clues, and display little investigative brilliance or determination of their own. As the series progresses, however, the other members, particularly Ai and Mitsuhiko, have demonstrated in some cases - especially where Conan is not present or out of commission - that the Detective Boys have the potential of becoming skilled investigators in their own right. Famous cases of such include:
Manga:
Anime:
Movie:
OVA:
Note: Caution must be advised for OVAs, movies and TV originals, as these are essentially non-canonical with the manga series and therefore not 100% diagnostically conclusive.
Ai Haibara | |
---|---|
|
Ayumi Yoshida | |
---|---|
|
Mitsuhiko Tsuburaya | |
---|---|
|
Genta Kojima | |
---|---|
|
Hiroshi Agasa | |
---|---|
|
Sumiko Kobayashi | |
---|---|
|
Rumi Wakasa | |
---|---|
|
The Detective Boys love Professor Hiroshi Agasa very much and they have a good familial relationship with each other. Professor Agasa has invented the 'Wristwatch Flashlight' and the 'Detective Boys Badge' to help them in their deductions and to contact each other in any situation that might come up.
Agasa, in turn, seems to consider the actual children of the group as surrogate grandchildren, and is willing to help them with various cases.
Sumiko Kobayashi is the current teacher of the class that the Detective Boys are in. She also proclaims herself to be their manager, much to the children's chagrin.
Since becoming assistant teacher in the Detective Boys' class, she has gone on a number of outings with them. She is secretly highly skilled at fighting and has protected the Detective Boys on a number of occasions. She also has very sharp deduction skills and has had to drop hints for Conan on the cases they've had together. However, there are indications that she is using the Detective Boys to her own ends.
Detective Boys and Nobita and his friends
Conan Edogawa and Nobita Nobi (not in the sense of intelligence, but as the respective 'leaders' of their groups)
Ayumi Yoshida with Shizuka Minamoto
Mitsuhiko Tsuburaya and Suneo Honekawa
Genta Kojima and Takeshi 'Gian' Goda
Hiroshi Agasa and Doraemon (both provide gadgets and assistance).
Ai Haibara and Dorami (wise and intelligent as well as second female member(recurring in Dorami's case)).
Language | Name | Translation |
---|---|---|
Japanese | 少年探偵団 Shōnen Tantei-dan | |
Arabic | فريق التحرّيات الصغير / فريق المحقّقين الصغار Farīq At-Taḥarriyāt Aṣ-Ṣaghīr / Farīq Al-Muḥaqqiqīn Aṣ-Ṣighār[5] | |
English | Junior Detective League | |
Korean | 어린이 탐정단 Eo-rin-i Tam-jeong-dan | |
French | Détective Junior | |
Filipino | Junior Detective Squad | |
Bahasa Indonesia | Grup Detektif Cilik | |
Bahasa Malaysia | Kumpulan Detektif Muda | |
German | Detective Boys | |
Spanish | Liga Juvenil de Detectives | |
Galician | Liga de Detectives Xuvenís | |
Catalan | Lliga de Detectius Júnior | |
Italian | Squadra dei Giovani Detective | |
Vietnamese | Đội Thám Tử Nhí (manga) Đội Thám Tử Tí Hon (anime) | |
Chinese | 少年侦探团 shào nián zhēn tàn tuán | |
Tradtional Chinese | 少年偵探團 shào nián zhēn tàn tuán | |
Thai | ขบวนการนักสืบเยาวชน K̄hbwnkār nạks̄ụ̄b yeāwchn |
The Detective Boys.
Mitsuhiko, Genta, and Ayumi when they were in kindergarten.
Detective Boys ten years later.[6]
Detective Boys | ||
---|---|---|
Members | Conan Edogawa • Ai Haibara • Ayumi Yoshida • Mitsuhiko Tsuburaya • Genta Kojima | |
Guardians | Hiroshi Agasa • Sumiko Kobayashi • Rumi Wakasa | |
Gadgets | Detective Boys Badge • Wristwatch Flashlight |
In this section, we'll talk about what web cache poisoning is and what behaviors can lead to web cache poisoning vulnerabilities. We'll also look at some ways of exploiting these vulnerabilities and suggest ways you can reduce your exposure to them.
Web cache poisoning is an advanced technique whereby an attacker exploits the behavior of a web server and cache so that a harmful HTTP response is served to other users.
Fundamentally, web cache poisoning involves two phases. First, the attacker must work out how to elicit a response from the back-end server that inadvertently contains some kind of dangerous payload. Once successful, they need to make sure that their response is cached and subsequently served to the intended victims.
A poisoned web cache can potentially be a devastating means of distributing numerous different attacks, exploiting vulnerabilities such as XSS, JavaScript injection, open redirection, and so on.
This technique was first popularized by our 2018 research paper, 'Practical Web Cache Poisoning', and developed further in 2020 with a second research paper, 'Web Cache Entanglement: Novel Pathways to Poisoning'. If you're interested in a detailed description of how we discovered and exploited these vulnerabilities in the wild, the full write-ups are available on our research page.
To understand how web cache poisoning vulnerabilities arise, it is important to have a basic understanding of how web caches work.
If a server had to send a new response to every single HTTP request separately, this would likely overload the server, resulting in latency issues and a poor user experience, especially during busy periods. Caching is primarily a means of reducing such issues.
The cache sits between the server and the user, where it saves (caches) the responses to particular requests, usually for a fixed amount of time. If another user then sends an equivalent request, the cache simply serves a copy of the cached response directly to the user, without any interaction from the back-end. This greatly eases the load on the server by reducing the number of duplicate requests it has to handle.
When the cache receives an HTTP request, it first has to determine whether there is a cached response that it can serve directly, or whether it has to forward the request for handling by the back-end server. Caches identify equivalent requests by comparing a predefined subset of the request's components, known collectively as the 'cache key'. Typically, this would contain the request line and Host
header. Components of the request that are not included in the cache key are said to be 'unkeyed'.
If the cache key of an incoming request matches the key of a previous request, then the cache considers them to be equivalent. As a result, it will serve a copy of the cached response that was generated for the original request. This applies to all subsequent requests with the matching cache key, until the cached response expires.
Crucially, the other components of the request are ignored altogether by the cache. We'll explore the impact of this behavior in more detail later.
The impact of web cache poisoning is heavily dependent on two key factors:
Note that the duration of a cache entry doesn't necessarily affect the impact of web cache poisoning. An attack can usually be scripted in such a way that it re-poisons the cache indefinitely.
Generally speaking, constructing a basic web cache poisoning attack involves the following steps:
Any web cache poisoning attack relies on manipulation of unkeyed inputs, such as headers. Web caches ignore unkeyed inputs when deciding whether to serve a cached response to the user. This behavior means that you can use them to inject your payload and elicit a 'poisoned' response which, if cached, will be served to all users whose requests have the matching cache key. Therefore, the first step when constructing a web cache poisoning attack is identifying unkeyed inputs that are supported by the server.
You can identify unkeyed inputs manually by adding random inputs to requests and observing whether or not they have an effect on the response. This can be obvious, such as reflecting the input in the response directly, or triggering an entirely different response. However, sometimes the effects are more subtle and require a bit of detective work to figure out. You can use tools such as Burp Comparer to compare the response with and without the injected input, but this still involves a significant amount of manual effort.
Fortunately, you can automate the process of identifying unkeyed inputs by adding the Param Miner extension to Burp from the BApp store. To use Param Miner, you simply right-click on a request that you want to investigate and click 'Guess headers'. Param Miner then runs in the background, sending requests containing different inputs from its extensive, built-in list of headers. If a request containing one of its injected inputs has an effect on the response, Param Miner logs this in Burp, either in the 'Issues' pane if you are using Burp Suite Professional, or in the 'Output' tab of the extension ('Extender' > 'Extensions' > 'Param Miner' > 'Output') if you are using Burp Suite Community Edition.
For example, in the following screenshot, Param Miner found an unkeyed header X-Forwarded-Host
on the home page of the website:
Caution: When testing for unkeyed inputs on a live website, there is a risk of inadvertently causing the cache to serve your generated responses to real users. Therefore, it is important to make sure that your requests all have a unique cache key so that they will only be served to you. To do this, you can manually add a cache buster (such as a unique parameter) to the request line each time you make a request. Alternatively, if you are using Param Miner, there are options for automatically adding a cache buster to every request.
Once you have identified an unkeyed input, the next step is to evaluate exactly how the website processes it. Understanding this is essential to successfully eliciting a harmful response. If an input is reflected in the response from the server without being properly sanitized, or is used to dynamically generate other data, then this is a potential entry point for web cache poisoning.
Manipulating inputs to elicit a harmful response is half the battle, but it doesn't achieve much unless you can cause the response to be cached, which can sometimes be tricky.
Whether or not a response gets cached can depend on all kinds of factors, such as the file extension, content type, route, status code, and response headers. You will probably need to devote some time to simply playing around with requests on different pages and studying how the cache behaves. Once you work out how to get a response cached that contains your malicious input, you are ready to deliver the exploit to potential victims.
This basic process can be used to discover and exploit a variety of different web cache poisoning vulnerabilities.
In some cases, web cache poisoning vulnerabilities arise due to general flaws in the design of caches. Other times, the way in which a cache is implemented by a specific website can introduce unexpected quirks that can be exploited.
In the following sections, we'll outline some of the most common examples of both of these scenarios. We've also provided a number of interactive labs so that you can see some of these vulnerabilities in action and practice exploiting them.
The definitive way to prevent web cache poisoning would clearly be to disable caching altogether. While for many websites this might not be a realistic option, in other cases, it might be feasible. For example, if you only use caching because it was switched on by default when you adopted a CDN, it might be worth evaluating whether the default caching options really do reflect your needs.
Even if you do need to use caching, restricting it to purely static responses is also effective, provided you are sufficiently wary about what you class as 'static'. For instance, make sure that an attacker can't trick the back-end server into retrieving their malicious version of a static resource instead of the genuine one.
This is also related to a wider point about web security. Most websites now incorporate a variety of third-party technologies into both their development processes and day-to-day operations. No matter how robust your own internal security posture may be, as soon as you incorporate third-party technology into your environment, you are relying on its developers also being as security-conscious as you are. On the basis that you are only as secure as your weakest point, it is vital to make sure that you fully understand the security implications of any third-party technology before you integrate it.
Specifically in the context of web cache poisoning, this not only means deciding whether to leave caching switched on by default, but also looking at which headers are supported by your CDN, for example. Several of the web cache poisoning vulnerabilities discussed above are exposed because an attacker is able to manipulate a series of obscure request headers, many of which are entirely unnecessary for the website's functionality. Again, you may be exposing yourself to these kinds of attacks without realizing, purely because you have implemented some technology that supports these unkeyed inputs by default. If a header isn't needed for the site to work, then it should be disabled.
You should also take the following precautions when implementing caching:
GET
requests. Be aware that some third-party technologies may permit this by default.