1337day.com Site ImageАко сте се занимавали с използване на ескплойти (exploits), не може да не сте попадали на сайта http://1337day.com. В него са събрани над 16700 експлойта от 1996-та година насам. Тъй като сайтът имаше (и все още има) доста проблеми със закона, редовно им спират домейните, които си купуват. Дълго време сайтът беше с адрес inj3ct0r.com, после се отваряше само по IP (77.120.101.55), а известно време сайтът съвсем го нямаше. Точно поради тези причини реших да събера всички експлойти от сайта и да ги споделя тук под формата на текстови файлове. Друга причина е, че търсенето в MySQL таблицата, която също съм качил тук, е много по-удобно и лесно.

Свалете съдържанието на сайта

Съдържанието, което можете да свалите от двата линка долу, е създадено изцяло с образователна цел. Използвайте го на свой собствен риск. Както се сещате, не отговарям за последствията или за начина, по който използвате съдържанието. Експлойтите са актуални към 20-ти август 2011.

Have fun, Script Kiddies!

MySQL Icon Big

MySQL dump на таблица с всички експлойти. Таблицата съдържа 6 колони: id, eid, link, title, content, date.

Text Icon Big

Линк към GitHub с всички експлойти под формата на текстови файлове, разделени в папки според годината им.

Код на бота

За създаването на бота, който събра всички експлойти, съм използвал език за програмиране C#. Използвал съм и мой клас HttpManager, който има проста фунцкионалност, която можете да разберете и без да имате кода му. Използвал съм и разширяващи методи на класа String, които също можете да си напишете сами. Ако се чудите за какво са трите константи в началото на класа: заради code highlighter-а. Ето и кода на класа Exploit, който върши основната част от работата:

internal class Exploit
{
    private const string openPreTag = "<pre>";
    private const string closePreTag = "</pre>";
    private const string openATag = "<a";

    public int EID { get; set; }
    public string Link
    {
        get
        {
            return string.Format("http://www.1337day.com/exploits/{0}", this.EID);
        }
    }
    public string Title { get; set; }
    public string Content { get; set; }
    public string Date { get; set; }

    public Exploit()
    {
        this.EID = 0;
        this.Title = string.Empty;
        this.Content = string.Empty;
        this.Date = string.Empty;
    }

    public Exploit(int id)
        : this()
    {
        this.EID = id;
    }

    public Exploit(int eID, string title, string content, string date)
    {
        this.EID = eID;
        this.Title = title;
        this.Content = content;
        this.Date = date;
    }

    public static Exploit ParseExploit(int id)
    {
        Exploit exploit = new Exploit(id);
        HttpManager http = new HttpManager(Encoding.UTF8, UserAgents.GoogleBot21);
        http.RequestGET(exploit.Link);
        if (http.Result.Contains("Error 404 - Not Found | Inj3ct0r - exploit database : vulnerability : 0day : shellcode"))
        {
            return null;
        }
        exploit.Title = http.Result.GetStringBetween("", "").Replace("| Inj3ct0r - exploit database : vulnerability : 0day : shellcode", string.Empty).HTMLDecodeSpecialChars().Trim();
        exploit.Content = http.Result.GetStringBetween(openPreTag.HTMLDecodeSpecialChars(), closePreTag.HTMLDecodeSpecialChars()).Replace(openATag.HTMLDecodeSpecialChars() + " href='http://www.1337day.com/'>1337day.com", "1337day.com").HTMLDecodeSpecialChars().Trim();
        exploit.Date = http.Result.GetStringBetween("# " + openATag.HTMLDecodeSpecialChars() + " href='http://www.1337day.com/'>1337day.com [", "]" + closePreTag.HTMLDecodeSpecialChars()).Trim();
        return exploit;
    }
}