File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
from ftw import ruleset, http, errors """ This script assumes that default blocking action is 403 and sampling is one. It will send a know bad request that is expected to be blocked. If sampling is on it will only block a certain percentage. We send 1000 requests to verify this. In order to do this we must also turn off IP Reputation blocking. SecAction "id:900005,phase:1,nolog,pass,ctl:ruleEngine=on,ctl:ruleRemoveById=910000" """ def send_requests(input_data,subiters,result,index): http_ua = http.HttpUA() for i in range(0,subiters): new_index = str(index)+str(i) http_ua.send_request(input_data) result[new_index] = http_ua.response_object.status def run_requests(iterations): """Post request with no content-type AND no content-length""" x = ruleset.Input(method="GET", protocol="http",port=80,uri='/?X="><script>alert(1);</script>',dest_addr="localhost",headers={"Host":"localhost","User-Agent":"ModSecurity CRS 3 test"}) import threading returns = {} threads = [] for i in range(5): t = threading.Thread(target=send_requests,args=(x,100, returns,i,)) threads.append(t) t.start() for t in threads: t.join() status_not_403 = 0 status_403 = 0 for status in returns.values(): if status == 403: status_403 += 1 else: status_not_403 += 1 x = (status_403/(len(returns)*1.0))*100 y = (status_not_403/(len(returns)*1.0))*100 print "403s =", x print "not 403s =", y return (x,y) def test_sampling(): print "running" block,passed = run_requests(100) assert block < 55 and block > 45
Simpan