kindle
12 years ago
commit
19ad5406e1
8 changed files with 312 additions and 0 deletions
@ -0,0 +1,22 @@
|
||||
# Auto detect text files and perform LF normalization |
||||
* text=auto |
||||
|
||||
# Custom for Visual Studio |
||||
*.cs diff=csharp |
||||
*.sln merge=union |
||||
*.csproj merge=union |
||||
*.vbproj merge=union |
||||
*.fsproj merge=union |
||||
*.dbproj merge=union |
||||
|
||||
# Standard to msysgit |
||||
*.doc diff=astextplain |
||||
*.DOC diff=astextplain |
||||
*.docx diff=astextplain |
||||
*.DOCX diff=astextplain |
||||
*.dot diff=astextplain |
||||
*.DOT diff=astextplain |
||||
*.pdf diff=astextplain |
||||
*.PDF diff=astextplain |
||||
*.rtf diff=astextplain |
||||
*.RTF diff=astextplain |
@ -0,0 +1,163 @@
|
||||
################# |
||||
## Eclipse |
||||
################# |
||||
|
||||
*.pydevproject |
||||
.project |
||||
.metadata |
||||
bin/ |
||||
tmp/ |
||||
*.tmp |
||||
*.bak |
||||
*.swp |
||||
*~.nib |
||||
local.properties |
||||
.classpath |
||||
.settings/ |
||||
.loadpath |
||||
|
||||
# External tool builders |
||||
.externalToolBuilders/ |
||||
|
||||
# Locally stored "Eclipse launch configurations" |
||||
*.launch |
||||
|
||||
# CDT-specific |
||||
.cproject |
||||
|
||||
# PDT-specific |
||||
.buildpath |
||||
|
||||
|
||||
################# |
||||
## Visual Studio |
||||
################# |
||||
|
||||
## Ignore Visual Studio temporary files, build results, and |
||||
## files generated by popular Visual Studio add-ons. |
||||
|
||||
# User-specific files |
||||
*.suo |
||||
*.user |
||||
*.sln.docstates |
||||
|
||||
# Build results |
||||
[Dd]ebug/ |
||||
[Rr]elease/ |
||||
*_i.c |
||||
*_p.c |
||||
*.ilk |
||||
*.meta |
||||
*.obj |
||||
*.pch |
||||
*.pdb |
||||
*.pgc |
||||
*.pgd |
||||
*.rsp |
||||
*.sbr |
||||
*.tlb |
||||
*.tli |
||||
*.tlh |
||||
*.tmp |
||||
*.vspscc |
||||
.builds |
||||
*.dotCover |
||||
|
||||
## TODO: If you have NuGet Package Restore enabled, uncomment this |
||||
#packages/ |
||||
|
||||
# Visual C++ cache files |
||||
ipch/ |
||||
*.aps |
||||
*.ncb |
||||
*.opensdf |
||||
*.sdf |
||||
|
||||
# Visual Studio profiler |
||||
*.psess |
||||
*.vsp |
||||
|
||||
# ReSharper is a .NET coding add-in |
||||
_ReSharper* |
||||
|
||||
# Installshield output folder |
||||
[Ee]xpress |
||||
|
||||
# DocProject is a documentation generator add-in |
||||
DocProject/buildhelp/ |
||||
DocProject/Help/*.HxT |
||||
DocProject/Help/*.HxC |
||||
DocProject/Help/*.hhc |
||||
DocProject/Help/*.hhk |
||||
DocProject/Help/*.hhp |
||||
DocProject/Help/Html2 |
||||
DocProject/Help/html |
||||
|
||||
# Click-Once directory |
||||
publish |
||||
|
||||
# Others |
||||
[Bb]in |
||||
[Oo]bj |
||||
sql |
||||
TestResults |
||||
*.Cache |
||||
ClientBin |
||||
stylecop.* |
||||
~$* |
||||
*.dbmdl |
||||
Generated_Code #added for RIA/Silverlight projects |
||||
|
||||
# Backup & report files from converting an old project file to a newer |
||||
# Visual Studio version. Backup files are not needed, because we have git ;-) |
||||
_UpgradeReport_Files/ |
||||
Backup*/ |
||||
UpgradeLog*.XML |
||||
|
||||
|
||||
|
||||
############ |
||||
## Windows |
||||
############ |
||||
|
||||
# Windows image file caches |
||||
Thumbs.db |
||||
|
||||
# Folder config file |
||||
Desktop.ini |
||||
|
||||
|
||||
############# |
||||
## Python |
||||
############# |
||||
|
||||
*.py[co] |
||||
|
||||
# Packages |
||||
*.egg |
||||
*.egg-info |
||||
dist |
||||
build |
||||
eggs |
||||
parts |
||||
bin |
||||
var |
||||
sdist |
||||
develop-eggs |
||||
.installed.cfg |
||||
|
||||
# Installer logs |
||||
pip-log.txt |
||||
|
||||
# Unit test / coverage reports |
||||
.coverage |
||||
.tox |
||||
|
||||
#Translations |
||||
*.mo |
||||
|
||||
#Mr Developer |
||||
.mr.developer.cfg |
||||
|
||||
# Mac crap |
||||
.DS_Store |
@ -0,0 +1,58 @@
|
||||
function log(method,url,data) |
||||
file=assert(io.open("/data/logs/hack/"..ngx.var.server_name.."_sec.log","a")) |
||||
if data then |
||||
if ngx.var.http_user_agent then |
||||
file:write(ngx.var.remote_addr.." ".." ["..ngx.localtime().."] \""..method.." "..url.."\" \""..data.."\" \""..ngx.status.."\" \""..ngx.var.http_user_agent.."\"\n") |
||||
else |
||||
file:write(ngx.var.remote_addr.." ".." ["..ngx.localtime().."] \""..method.." "..url.."\" \""..data.."\" \"-\"\n") |
||||
end |
||||
else |
||||
if ngx.var.http_user_agent then |
||||
file:write(ngx.var.remote_addr.." ".." ["..ngx.localtime().."] \""..method.." "..url.."\" \"-\" \""..ngx.var.http_user_agent.."\"\n") |
||||
else |
||||
file:write(ngx.var.remote_addr.." ".." ["..ngx.localtime().."] \""..method.." "..url.."\" \"-\" \"".."-\"\n") |
||||
end |
||||
end |
||||
file:close() |
||||
end |
||||
function check() |
||||
ngx.header.content_type = "text/html" |
||||
ngx.print("just a joke hehe~ !!") |
||||
ngx.exit(200) |
||||
end |
||||
function read_rule(var) |
||||
file = io.open("/usr/local/nginx/conf/wafconf/"..var,"r") |
||||
t = {} |
||||
for line in file:lines() do |
||||
table.insert(t,line) |
||||
end |
||||
return(table.concat(t,"|")) |
||||
end |
||||
regex=read_rule('phpids') |
||||
get=read_rule('get') |
||||
post=read_rule('post') |
||||
agent=read_rule('user-agent') |
||||
whitelist=read_rule('whitelist') |
||||
if ngx.re.match(ngx.var.request_uri,whitelist,"i") then |
||||
return |
||||
elseif ngx.req.get_body_data() and ngx.re.match(ngx.req.get_body_data(),[[^(?!Content-Disposition: form-data;(.*)filename="(.*).(php|jsp|phtml)").*$]],"i") then |
||||
return |
||||
else |
||||
if ngx.re.match(ngx.unescape_uri(ngx.var.request_uri),regex.."|"..get,"isjo") then |
||||
log('GET',ngx.unescape_uri(ngx.var.request_uri)) |
||||
check() |
||||
elseif ngx.req.get_body_data() and ngx.re.match(ngx.unescape_uri(ngx.req.get_body_data()),regex,"isjo")then |
||||
log('POST',ngx.unescape_uri(ngx.var.request_uri),ngx.unescape_uri(ngx.req.get_body_data())) |
||||
check() |
||||
-- elseif ngx.req.get_headers()["Cookie"] and ngx.re.match(ngx.unescape_uri(ngx.req.get_headers()["Cookie"]),regex,"isjo")then |
||||
-- log('COOKIE',ngx.unescape_uri(ngx.var.request_uri),ngx.unescape_uri(ngx.req.get_headers()["Cookie"])) |
||||
-- check() |
||||
elseif ngx.var.http_user_agent and ngx.re.match(ngx.var.http_user_agent,regex.."|"..agent,"isjo") then |
||||
log('USER-AGENT',ngx.unescape_uri(ngx.var.request_uri)) |
||||
check() |
||||
elseif ngx.req.get_headers()['Acunetix-Aspect'] then |
||||
ngx.exit(400) |
||||
else |
||||
return |
||||
end |
||||
end |
@ -0,0 +1,29 @@
|
||||
injected_by_wvs |
||||
\.(bak|inc|old|mdb|sql|backup|java|class)$ |
||||
some-inexistent-website |
||||
boot\.ini |
||||
never_could_exist_file_nosec |
||||
SomeCustomInjectedHeader |
||||
((.*)/(attachments|js|upimg|images|css|uploadfiles|html|uploads|templets|static|template|data|inc|forumdata|upload|includes|cache|avatar)/(\\w+).(php|jsp)) |
||||
\/proc\/(\d+|self)\/environ |
||||
.htaccess |
||||
\<(iframe|script|body|img) |
||||
javascript\: |
||||
onmouseover\= |
||||
\.svn |
||||
ewebeditor |
||||
\.nsf |
||||
\.mdb |
||||
jmx-console |
||||
javascript\: |
||||
nosec\.txt |
||||
thisdoesnotexist |
||||
phpmyadmin |
||||
jsky_test\.txt |
||||
\$\{ |
||||
lang\.Runtime |
||||
getInputStream |
||||
getRuntime |
||||
\)\.exec\( |
||||
\(\' |
||||
\"\= |
@ -0,0 +1,37 @@
|
||||
order(.*)by(.*)\d |
||||
(?:alter\s*\w+.*character\s+set\s+\w+)|(";\s*waitfor\s+time\s+") |
||||
(?:%c0%ae\/) |
||||
\<\!ENTITY(.*)SYSTEM(.*)\> |
||||
(?:\Wselect.+\W*from)|((?:select|create|rename|truncate|alter|delete|update|insert|desc)\s*\(\s*space\s*\() |
||||
(?:(?:select|create|rename|truncate|alter|delete|update|insert|desc)\s+(?:(?:group_)concat|char|load_file)\s?\(?)|(?:end\s*\);)|("\s+regexp\W)|(?:[\s(]load_file\s*\() |
||||
(?i:(\%SYSTEMROOT\%)) |
||||
(?:merge.*using\s*\()|(execute\s*immediate\s*")|(?:\W+\d*\s*having\s*[^\s\-])|(?:match\s*[\w(),+-]+\s*against\s*\() |
||||
(?:\<!-|-->)|(?:<!\[\W)|(?:\]!>) |
||||
(?:procedure\s+analyse\s*\()|(?:create\s+(procedure|function)\s*\w+\s*\(\s*\)\s*-)|(?:declare[^\w]+[@#]\s*\w+)|(exec\s*\(\s*@) |
||||
(?:[\s()]case\s*\()|(?:\)\s*like\s*\()|(?:having\s*[^\s]+\s*[^\w\s])|(?:if\s?\([\d\w]\s*[=<>~]) |
||||
(?:(select|;)\s+(?:benchmark|if|sleep)\s*?\(\s*\(?\s*\w+) |
||||
(?:select\s*pg_sleep)|(?:waitfor\s*delay\s?"+\s?\d)|(?:;\s*shutdown\s*(?:;|--|#|\/\*|{)) |
||||
(?:\sexec\s+xp_cmdshell)|(?:from\W+information_schema\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\s*\([^\)]*)|(?:exec\s+master\.)|(?:union select @)|(?:union[\w(\s]*select)|(?:select.*\w?user\()|(?:into[\s+]+(?:dump|out)file\s*") |
||||
(?:(sleep\((\s*)(\d*)(\s*)\)|benchmark\((.*)\,(.*)\))) |
||||
(?:@.+=\s*\(\s*select)|(?:\d\s+group\s+by.+\()|(?:(?:;|#|--)\s*(?:drop|alter))|(?:(?:;|#|--)\s*(?:update|insert)\s*\w{2,}) |
||||
(?:\\u00[a-f0-9]{2})|(?:\\x0*[a-f0-9]{2})|(?:\\\d{2,3}) |
||||
(?:\w\.exe\??\s)|(?:\d\.\dx\|)|(?:%(?:c0\.|af\.|5c\.))|(?:\/(?:%2e){2}) |
||||
(?:%u(?:ff|00|e\d)\w\w) |
||||
(?:(union(.*)select(.*))) |
||||
(?:\wscript:|@import[^\w]|;base64|base64,)|(?:\w\s*\([\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+\)) |
||||
\.\.\/ |
||||
substr\( |
||||
[\s\"'`;\/0-9\=]+on\w+\s*= |
||||
background\b\W*?:\W*?url|background-image\b\W*?:|behavior\b\W*?:\W*?url|-moz-binding\b|@import\b|expression\b\W*?\( |
||||
(fromcharcode|alert|eval)\s*\( |
||||
((?:=|U\s*R\s*L\s*\()\s*[^>]*\s*S\s*C\s*R\s*I\s*P\s*T\s*:|:|[\s\S]allowscriptaccess[\s\S]|[\s\S]data:text\/html[\s\S]|[\s\S]xlink:href[\s\S]|<style[^>]*>[\s\S]*?|[\s\S]@import[\s\S]|<applet[^>]*>[\s\S]*?|<meta[^>]*>[\s\S]*?|<object[^>]*>[\s\S]*?) |
||||
\<(iframe|script|body|img|layer) |
||||
(?i:(?:\A|[^\d])0x[a-f\d]{3,}[a-f\d]*)+ |
||||
(?i:(\!\=|\&\&|\|\||>>|<<|>=|<=|<>|<=>|xor|rlike|regexp|isnull)|(?:not\s+between\s+0\s+and)|(?:is\s+null)|(like\s+null)|(?:(?:^|\W)in[+\s]*\([\s\d\"]+[^()]*\))|(?:xor|<>|rlike(?:\s+binary)?)|(?:regexp\s+binary)) |
||||
(?i:(?:m(?:s(?:ysaccessobjects|ysaces|ysobjects|ysqueries|ysrelationships|ysaccessstorage|ysaccessxml|ysmodules|ysmodules2|db)|aster\.\.sysdatabases|ysql\.db)|s(?:ys(?:\.database_name|aux)|chema(?:\W*\(|_name)|qlite(_temp)?_master)|d(?:atabas|b_nam)e\W*\(|information_schema|pg_(catalog|toast)|northwind|tempdb)) |
||||
(%0d|%0a) |
||||
phpinfo\( |
||||
(?:\((?:\W*?(?:objectc(?:ategory|lass)|homedirectory|[gu]idnumber|cn)\b\W*?=|[^\w\x80-\xFF]*?[\!\&\|][^\w\x80-\xFF]*?\()|\)[^\w\x80-\xFF]*?\([^\w\x80-\xFF]*?[\!\&\|]) |
||||
\<\!\-\-\W*?#\W*?(?:e(?:cho|xec)|printenv|include|cmd) |
||||
(?i:(\binclude\s*\([^)]*|mosConfig_absolute_path|_CONF\[path\]|_SERVER\[DOCUMENT_ROOT\]|GALLERY_BASEDIR|path\[docroot\]|appserv_root|config\[root_dir\])=(ht|f)tps?:\/\/) |
||||
(?:\b(?:\.(?:ht(?:access|passwd|group)|www_?acl)|global\.asa|httpd\.conf|boot\.ini)\b|\/etc\/) |
@ -0,0 +1 @@
|
||||
.*(LWP::Simple|winhttp|clshttp|HTTrack|harvest|nsauditor|dirbuster|pangolin|nmap|sqlninja|grendel-scan|hydra|perl|HTMLParser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|PycURL|sae|zmeu|BabyKrokodil|python|netsparker).* |
Loading…
Reference in new issue