Python for InfoSec Part 4: Web Requests


  • administrators

    Tutorial này sẽ chỉ cách tạo web request sử dụng Python. Có một vài module Python giúp dễ dàng tạo web requests/responses (httplib, Mechanize, Beautiful Soup, và urllib/urllib2). Hãy cài những module này và thử những tính năng của nó.

    Tạo một Web Request:

    Dưới đây là ảnh chụp màn hình minh họa cho cú pháp để tạo một web request đối với web server local chạy với Python's SimpleHTTPServer:

    Phân tích HTML:

    Hình dưới đây minh họa việc dùng module BeautifulSoup để phân tích HTML dựa vào các thẻ HTML.

    Sức mạnh của BeautifulSoup đến từ khả năng phân tích HTML dựa vào các thẻ. Bạn có thể dùng hàm "find_all", ví dụ: "iframes = parsed.find_all(‘iframe’)”.

    Ứng dụng:

    Hãy tìm một web resource giúp bạn tạo nhiều truy vấn. Các Python script sẽ giúp bạn tự động hóa công việc này. Một web resource mà bản thân tôi thường sử dụng là iplist.net, nó có thể cho tôi biết nhiều tên miền khác nhau cùng trỏ đến một địa chỉ IP nào đó.

    Trước khi bắt đầu, hãy xem xét 2 điều:

    • Cấu trúc của URL mà bạn muốn request.
    • Kiểu response bạn muốn là gì

    Cấu trúc của iplist.net đơn giản là 'http://iplist.net/ip/' - nên bạn có thể dễ dàng đọc các IP trong một file và lặp qua chúng. Tiếp đến là tạo một request và sau đó xem xét source code để tìm thấy phần bạn muốn. Trong ví dụ này chúng ta có thể xem và thấy rằng thẻ header "domain_name" - nên chúng ta có thể sử dụng BeautifulSoup chỉ để giải mã phần này. Dưới đây là ví dụ minh họa

    Firebug là một công cụ hữu dụng khi phân tích source code của một ứng dụng web.

    Đây là quy trình bạn sẽ trải qua khi phân tích các response trả về. Sau đó bạn có thể tìm và in ra những thông tin mà bạn cần.

    Đây là link cho nhiều script (Primal Security) phức tạp hơn khi làm việc với iplist.net



  • It seems useful. Thanks a lot!



  • chào anh. em đang tìm hiểu về chủ đề về lấy dữ liệu website bằng requests từ thư viện urllib kết hợp với BS4 + pandas. Em hi vọng anh có nhiều bài viết về chủ đề này hơn để em có thể tham khảo và học hỏi được nhiều hơn.


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.