利用OPENAI生成链接扫描器

admin 2023年2月24日01:55:04评论85 views字数 2299阅读7分39秒阅读模式

微信公众号:cybersec
为国之安全而奋斗,为信息安全而发声!
如有问题或建议,请在公众号后台留言
如果你觉得本文对你有帮助,欢迎关注本公众号

OPENAI

OpenAI公布了最新的一个基于AI的对话系统ChatGPT3.5。根据官方介绍,ChatGPT以对话方式进行交互。对话格式使ChatGPT能够回答后续问题、承认错误、质疑不正确的前提和拒绝不适当的请求。ChatGPTInstructGPT的兄弟模型,它被训练为在提示中遵循指令并提供详细的响应。

OpenAI开放了一个在线演示的系统(地址:https://chat.openai.com/auth/login )

这几天这个AI火爆整个安全行业

虽然有时候回答的很勉强但不得不说AI的检索能力还是很强的

期待GPT4能快速训练出一个更完美的AI

OPENAI的应用

突发奇想,利用AI做一个爬虫

爬取网址中的URL链接(渗透测试中可能会有意想不到的)

通过https://chat.openai.com/chat交互,获取源码

package main

import (
    "flag"
    "fmt"
    "net/http"

    "golang.org/x/net/html"
)

func main() {
    //获取参数
    var url string
    flag.StringVar(&url, "u""""use:main -u url")
    flag.Parse()
    if len(url) <= 0 {
        fmt.Println("urlfind nt by:luckonen建议配合httpx使用   nuse:ntmain -u url | httpx")
    }
    // 发送 HTTP 请求
    resp, err := http.Get(url)
    if err != nil {
        //fmt.Println(err)
        return
    }
    defer resp.Body.Close()

    // 解析 HTML 响应并提取所有的链接
    doc, err := html.Parse(resp.Body)
    if err != nil {
        fmt.Println(err)
        return
    }

    var links []string
    visitNode := func(n *html.Node) {
        if n.Type == html.ElementNode && n.Data == "a" {
            for _, a := range n.Attr {
                if a.Key != "href" {
                    continue
                }
                link, err := resp.Request.URL.Parse(a.Val)
                if err != nil {
                    continue // 忽略无效的 URL
                }
                links = append(links, link.String())
            }
        }
    }
    forEachNode(doc, visitNode, nil)

    // 打印所有提取到的链接
    for i := 0; i < len(links); i++ {
        fmt.Println(links[i])
    }

}

func resHead(url string) {
    // 发送 HTTP 请求
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer resp.Body.Close()

    // 获取响应头内容
    contentType := resp.Header.Get("server")
    fmt.Println("server:" + contentType)
}

// forEachNode 遍历 n 及其子节点
func forEachNode(n *html.Node, pre, post func(n *html.Node)) {
    if pre != nil {
        pre(n)
    }
    for c := n.FirstChild; c != nil; c = c.NextSibling {
        forEachNode(c, pre, post)
    }
    if post != nil {
        post(n)
    }
}

稍加修改即可成为一个工具

配合httpx可探测网址指纹信息等。。。。

https://github.com/projectdiscovery/httpx

使用效果

效果还不错

利用OPENAI生成链接扫描器

项目地址

https://github.com/lucksec/urlfind_go

大家可自行修改
如果感觉不错,欢迎给项目点个Star或者分享给其他师傅



原文始发于微信公众号(SafetyTeam):利用OPENAI生成链接扫描器

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月24日01:55:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用OPENAI生成链接扫描器http://cn-sec.com/archives/1569274.html

发表评论

匿名网友 填写信息