arachni 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG.md +21 -0
  3. data/Gemfile +1 -1
  4. data/README.md +1 -1
  5. data/lib/arachni/element/capabilities/auditable/taint.rb +1 -0
  6. data/lib/arachni/element/form.rb +4 -6
  7. data/lib/arachni/http.rb +1 -0
  8. data/lib/arachni/parser.rb +1 -1
  9. data/lib/arachni/spider.rb +14 -2
  10. data/lib/version +1 -1
  11. data/modules/audit/code_injection.rb +36 -10
  12. data/modules/audit/code_injection_php_input_wrapper.rb +38 -5
  13. data/modules/audit/code_injection_timing.rb +36 -13
  14. data/modules/audit/csrf.rb +41 -11
  15. data/modules/audit/file_inclusion.rb +36 -6
  16. data/modules/audit/ldapi.rb +31 -6
  17. data/modules/audit/os_cmd_injection.rb +28 -7
  18. data/modules/audit/os_cmd_injection_timing.rb +29 -15
  19. data/modules/audit/path_traversal.rb +42 -6
  20. data/modules/audit/response_splitting.rb +26 -9
  21. data/modules/audit/rfi.rb +37 -9
  22. data/modules/audit/session_fixation.rb +38 -7
  23. data/modules/audit/source_code_disclosure.rb +41 -5
  24. data/modules/audit/sqli.rb +57 -6
  25. data/modules/audit/sqli_blind_rdiff.rb +54 -9
  26. data/modules/audit/sqli_blind_timing.rb +58 -15
  27. data/modules/audit/unvalidated_redirect.rb +29 -9
  28. data/modules/audit/xpath.rb +35 -8
  29. data/modules/audit/xss.rb +54 -9
  30. data/modules/audit/xss_event.rb +54 -10
  31. data/modules/audit/xss_path.rb +56 -9
  32. data/modules/audit/xss_script_tag.rb +54 -8
  33. data/modules/audit/xss_tag.rb +53 -7
  34. data/modules/recon/allowed_methods.rb +24 -4
  35. data/modules/recon/backdoors.rb +29 -11
  36. data/modules/recon/backup_files.rb +30 -14
  37. data/modules/recon/common_directories.rb +27 -8
  38. data/modules/recon/common_files.rb +27 -7
  39. data/modules/recon/directory_listing.rb +30 -10
  40. data/modules/recon/grep/captcha.rb +26 -8
  41. data/modules/recon/grep/credit_card.rb +25 -6
  42. data/modules/recon/grep/cvs_svn_users.rb +23 -6
  43. data/modules/recon/grep/emails.rb +28 -8
  44. data/modules/recon/grep/form_upload.rb +31 -6
  45. data/modules/recon/grep/http_only_cookies.rb +33 -8
  46. data/modules/recon/grep/insecure_cookies.rb +36 -9
  47. data/modules/recon/grep/mixed_resource.rb +29 -9
  48. data/modules/recon/grep/password_autocomplete.rb +33 -6
  49. data/modules/recon/grep/private_ip.rb +21 -7
  50. data/modules/recon/grep/ssn.rb +17 -6
  51. data/modules/recon/grep/unencrypted_password_forms.rb +28 -9
  52. data/modules/recon/htaccess_limit.rb +23 -8
  53. data/modules/recon/http_put.rb +29 -7
  54. data/modules/recon/interesting_responses.rb +8 -10
  55. data/modules/recon/localstart_asp.rb +35 -5
  56. data/modules/recon/webdav.rb +23 -7
  57. data/modules/recon/x_forwarded_for_access_restriction_bypass.rb +27 -6
  58. data/modules/recon/xst.rb +26 -5
  59. data/plugins/autologin.rb +16 -5
  60. data/plugins/proxy/server.rb +2 -9
  61. data/spec/external/wavsep/active/lfi_spec.rb +6 -6
  62. data/spec/external/wavsep/active/rfi_spec.rb +6 -6
  63. data/spec/external/wavsep/active/sqli_spec.rb +4 -4
  64. data/spec/external/wavsep/active/xss_spec.rb +1 -1
  65. data/spec/support/logs/Dispatcher - 1332-56847.log +9 -0
  66. data/spec/support/logs/Dispatcher - 1361-63434.log +21 -0
  67. data/spec/support/logs/Dispatcher - 1545-55308.log +9 -0
  68. data/spec/support/logs/Dispatcher - 1559-18938.log +19 -0
  69. data/spec/support/logs/Dispatcher - 1568-25013.log +17 -0
  70. data/spec/support/logs/Dispatcher - 1577-55689.log +13 -0
  71. data/spec/support/logs/Dispatcher - 1586-18577.log +9 -0
  72. data/spec/support/logs/Dispatcher - 1595-49353.log +9 -0
  73. data/spec/support/logs/Dispatcher - 1604-27831.log +11 -0
  74. data/spec/support/logs/Dispatcher - 1617-57444.log +11 -0
  75. data/spec/support/logs/Dispatcher - 1631-28737.log +11 -0
  76. data/spec/support/logs/Dispatcher - 1644-21815.log +33 -0
  77. data/spec/support/logs/Dispatcher - 1738-53470.log +21 -0
  78. data/spec/support/logs/Dispatcher - 1747-64173.log +21 -0
  79. data/spec/support/logs/Dispatcher - 1756-11866.log +23 -0
  80. data/spec/support/logs/Dispatcher - 1798-12175.log +19 -0
  81. data/spec/support/logs/Dispatcher - 1807-22790.log +17 -0
  82. data/spec/support/logs/Dispatcher - 1816-57823.log +15 -0
  83. data/spec/support/logs/Dispatcher - 1831-64825.log +11 -0
  84. data/spec/support/logs/Dispatcher - 1845-27623.log +9 -0
  85. data/spec/support/logs/Dispatcher - 1854-26066.log +9 -0
  86. data/spec/support/logs/Dispatcher - 1863-37486.log +9 -0
  87. data/spec/support/logs/Dispatcher - 1874-22463.log +9 -0
  88. data/spec/support/logs/Dispatcher - 1883-41263.log +11 -0
  89. data/spec/support/logs/Dispatcher - 1900-53660.log +9 -0
  90. data/spec/support/logs/Dispatcher - 1909-44423.log +9 -0
  91. data/spec/support/logs/Dispatcher - 1921-58931.log +9 -0
  92. data/spec/support/logs/Dispatcher - 1993-6448.log +63 -0
  93. data/spec/support/logs/Dispatcher - 2002-19206.log +43 -0
  94. data/spec/support/logs/Dispatcher - 2011-11852.log +39 -0
  95. data/spec/support/logs/Dispatcher - 2020-65055.log +34 -0
  96. data/spec/support/logs/Dispatcher - 2029-48445.log +28 -0
  97. data/spec/support/logs/Dispatcher - 2038-55271.log +21 -0
  98. data/spec/support/logs/Dispatcher - 2047-45722.log +13 -0
  99. data/spec/support/logs/Dispatcher - 2057-48194.log +9 -0
  100. data/spec/support/logs/Dispatcher - 2189-39843.log +19 -0
  101. data/spec/support/logs/Dispatcher - 2199-15985.log +21 -0
  102. data/spec/support/logs/Dispatcher - 2208-22080.log +15 -0
  103. data/spec/support/logs/Dispatcher - 2221-37690.log +19 -0
  104. data/spec/support/logs/Dispatcher - 2230-47867.log +21 -0
  105. data/spec/support/logs/Dispatcher - 2239-27060.log +15 -0
  106. data/spec/support/logs/Dispatcher - 2358-8967.log +17 -0
  107. data/spec/support/logs/Dispatcher - 2367-27103.log +21 -0
  108. data/spec/support/logs/Dispatcher - 2376-16287.log +13 -0
  109. data/spec/support/logs/Dispatcher - 2389-9109.log +19 -0
  110. data/spec/support/logs/Dispatcher - 2398-62926.log +21 -0
  111. data/spec/support/logs/Dispatcher - 2407-48685.log +15 -0
  112. data/spec/support/logs/Dispatcher - 2459-62480.log +17 -0
  113. data/spec/support/logs/Dispatcher - 2470-57894.log +21 -0
  114. data/spec/support/logs/Dispatcher - 2479-51883.log +13 -0
  115. data/spec/support/logs/Dispatcher - 2493-36944.log +17 -0
  116. data/spec/support/logs/Dispatcher - 2503-59143.log +21 -0
  117. data/spec/support/logs/Dispatcher - 2513-33084.log +13 -0
  118. data/spec/support/logs/Dispatcher - 25430-46306.log +9 -0
  119. data/spec/support/logs/Dispatcher - 25457-10711.log +23 -0
  120. data/spec/support/logs/Dispatcher - 25603-48892.log +9 -0
  121. data/spec/support/logs/Dispatcher - 25613-24775.log +19 -0
  122. data/spec/support/logs/Dispatcher - 25622-59684.log +17 -0
  123. data/spec/support/logs/Dispatcher - 25631-23195.log +13 -0
  124. data/spec/support/logs/Dispatcher - 25640-9810.log +9 -0
  125. data/spec/support/logs/Dispatcher - 25649-52757.log +9 -0
  126. data/spec/support/logs/Dispatcher - 25658-58550.log +11 -0
  127. data/spec/support/logs/Dispatcher - 25671-30871.log +11 -0
  128. data/spec/support/logs/Dispatcher - 25684-48620.log +11 -0
  129. data/spec/support/logs/Dispatcher - 25697-18124.log +37 -0
  130. data/spec/support/logs/Dispatcher - 25762-35321.log +21 -0
  131. data/spec/support/logs/Dispatcher - 25771-64633.log +21 -0
  132. data/spec/support/logs/Dispatcher - 25780-43558.log +23 -0
  133. data/spec/support/logs/Dispatcher - 25821-43561.log +19 -0
  134. data/spec/support/logs/Dispatcher - 25830-39112.log +17 -0
  135. data/spec/support/logs/Dispatcher - 25839-44093.log +15 -0
  136. data/spec/support/logs/Dispatcher - 25852-12057.log +11 -0
  137. data/spec/support/logs/Dispatcher - 25866-49029.log +9 -0
  138. data/spec/support/logs/Dispatcher - 25875-32179.log +9 -0
  139. data/spec/support/logs/Dispatcher - 25884-62703.log +9 -0
  140. data/spec/support/logs/Dispatcher - 25894-4228.log +9 -0
  141. data/spec/support/logs/Dispatcher - 25903-6709.log +11 -0
  142. data/spec/support/logs/Dispatcher - 25917-29651.log +9 -0
  143. data/spec/support/logs/Dispatcher - 25926-12708.log +9 -0
  144. data/spec/support/logs/Dispatcher - 25935-54092.log +9 -0
  145. data/spec/support/logs/Dispatcher - 25990-26756.log +63 -0
  146. data/spec/support/logs/Dispatcher - 25999-4016.log +43 -0
  147. data/spec/support/logs/Dispatcher - 26008-52076.log +39 -0
  148. data/spec/support/logs/Dispatcher - 26017-48497.log +34 -0
  149. data/spec/support/logs/Dispatcher - 26026-28839.log +28 -0
  150. data/spec/support/logs/Dispatcher - 26035-54215.log +21 -0
  151. data/spec/support/logs/Dispatcher - 26044-27216.log +13 -0
  152. data/spec/support/logs/Dispatcher - 26054-53464.log +9 -0
  153. data/spec/support/logs/Dispatcher - 26163-65271.log +19 -0
  154. data/spec/support/logs/Dispatcher - 26173-58105.log +21 -0
  155. data/spec/support/logs/Dispatcher - 26182-40848.log +15 -0
  156. data/spec/support/logs/Dispatcher - 26195-2855.log +19 -0
  157. data/spec/support/logs/Dispatcher - 26204-35297.log +21 -0
  158. data/spec/support/logs/Dispatcher - 26213-59588.log +15 -0
  159. data/spec/support/logs/Dispatcher - 26333-40774.log +17 -0
  160. data/spec/support/logs/Dispatcher - 26342-45541.log +21 -0
  161. data/spec/support/logs/Dispatcher - 26351-3349.log +13 -0
  162. data/spec/support/logs/Dispatcher - 26364-37456.log +19 -0
  163. data/spec/support/logs/Dispatcher - 26373-37340.log +21 -0
  164. data/spec/support/logs/Dispatcher - 26382-54864.log +15 -0
  165. data/spec/support/logs/Dispatcher - 26434-3070.log +17 -0
  166. data/spec/support/logs/Dispatcher - 26448-14295.log +21 -0
  167. data/spec/support/logs/Dispatcher - 26474-30587.log +13 -0
  168. data/spec/support/logs/Dispatcher - 26500-32529.log +17 -0
  169. data/spec/support/logs/Dispatcher - 26509-16952.log +21 -0
  170. data/spec/support/logs/Dispatcher - 26519-43332.log +13 -0
  171. data/spec/support/logs/Dispatcher - 26750-61867.log +19 -0
  172. data/spec/support/logs/Dispatcher - 26759-22532.log +21 -0
  173. data/spec/support/logs/Dispatcher - 26768-18231.log +15 -0
  174. data/spec/support/logs/Dispatcher - 26792-41661.log +21 -0
  175. data/spec/support/logs/Dispatcher - 26801-14384.log +25 -0
  176. data/spec/support/logs/Dispatcher - 26810-2591.log +15 -0
  177. data/spec/support/logs/Dispatcher - 26846-14591.log +17 -0
  178. data/spec/support/logs/Dispatcher - 26855-15708.log +21 -0
  179. data/spec/support/logs/Dispatcher - 26864-2062.log +13 -0
  180. data/spec/support/logs/Dispatcher - 26877-14471.log +21 -0
  181. data/spec/support/logs/Dispatcher - 26886-49795.log +25 -0
  182. data/spec/support/logs/Dispatcher - 26895-21093.log +15 -0
  183. data/spec/support/logs/Dispatcher - 26931-30049.log +17 -0
  184. data/spec/support/logs/Dispatcher - 26940-34273.log +21 -0
  185. data/spec/support/logs/Dispatcher - 26949-30040.log +13 -0
  186. data/spec/support/logs/Dispatcher - 26962-8152.log +17 -0
  187. data/spec/support/logs/Dispatcher - 26971-53062.log +21 -0
  188. data/spec/support/logs/Dispatcher - 26980-7548.log +13 -0
  189. data/spec/support/logs/Dispatcher - 2737-20989.log +19 -0
  190. data/spec/support/logs/Dispatcher - 2746-5423.log +21 -0
  191. data/spec/support/logs/Dispatcher - 2755-53393.log +15 -0
  192. data/spec/support/logs/Dispatcher - 27615-41812.log +19 -0
  193. data/spec/support/logs/Dispatcher - 27624-43683.log +21 -0
  194. data/spec/support/logs/Dispatcher - 27633-11593.log +15 -0
  195. data/spec/support/logs/Dispatcher - 27658-12186.log +21 -0
  196. data/spec/support/logs/Dispatcher - 27667-15575.log +25 -0
  197. data/spec/support/logs/Dispatcher - 27676-17207.log +15 -0
  198. data/spec/support/logs/Dispatcher - 27712-2233.log +17 -0
  199. data/spec/support/logs/Dispatcher - 27721-3842.log +21 -0
  200. data/spec/support/logs/Dispatcher - 27730-22695.log +13 -0
  201. data/spec/support/logs/Dispatcher - 27743-8364.log +21 -0
  202. data/spec/support/logs/Dispatcher - 27752-6140.log +25 -0
  203. data/spec/support/logs/Dispatcher - 27761-25015.log +15 -0
  204. data/spec/support/logs/Dispatcher - 27797-9270.log +17 -0
  205. data/spec/support/logs/Dispatcher - 2780-58168.log +21 -0
  206. data/spec/support/logs/Dispatcher - 27806-48623.log +21 -0
  207. data/spec/support/logs/Dispatcher - 27815-58778.log +13 -0
  208. data/spec/support/logs/Dispatcher - 27828-29742.log +17 -0
  209. data/spec/support/logs/Dispatcher - 27837-46211.log +21 -0
  210. data/spec/support/logs/Dispatcher - 27846-16143.log +13 -0
  211. data/spec/support/logs/Dispatcher - 2789-29375.log +25 -0
  212. data/spec/support/logs/Dispatcher - 2798-10983.log +15 -0
  213. data/spec/support/logs/Dispatcher - 2836-2354.log +17 -0
  214. data/spec/support/logs/Dispatcher - 2845-65341.log +21 -0
  215. data/spec/support/logs/Dispatcher - 2854-18936.log +13 -0
  216. data/spec/support/logs/Dispatcher - 2867-51979.log +21 -0
  217. data/spec/support/logs/Dispatcher - 2876-21086.log +25 -0
  218. data/spec/support/logs/Dispatcher - 2887-17393.log +15 -0
  219. data/spec/support/logs/Dispatcher - 2930-37394.log +17 -0
  220. data/spec/support/logs/Dispatcher - 2943-46737.log +21 -0
  221. data/spec/support/logs/Dispatcher - 2956-37866.log +13 -0
  222. data/spec/support/logs/Dispatcher - 2976-21012.log +17 -0
  223. data/spec/support/logs/Dispatcher - 2990-48082.log +21 -0
  224. data/spec/support/logs/Dispatcher - 2999-16391.log +13 -0
  225. data/spec/support/logs/{Instance - 10762-33696.error.log → Instance - 2204-45164.error.log } +59 -40
  226. data/spec/support/logs/{Instance - 11038-18065.error.log → Instance - 2475-49789.error.log } +61 -42
  227. data/spec/support/logs/{Instance - 11069-34848.error.log → Instance - 2509-39450.error.log } +158 -139
  228. data/spec/support/logs/{Instance - 11229-38634.error.log → Instance - 2533-5785.error.log } +56 -37
  229. data/spec/support/logs/Instance - 2539-42941.error.log +356 -0
  230. data/spec/support/logs/Instance - 26178-57631.error.log +324 -0
  231. data/spec/support/logs/Instance - 26458-60253.error.log +326 -0
  232. data/spec/support/logs/Instance - 26514-44685.error.log +423 -0
  233. data/spec/support/logs/Instance - 26538-43093.error.log +322 -0
  234. data/spec/support/logs/Instance - 26544-52217.error.log +328 -0
  235. data/spec/support/logs/{Instance - 11097-33191.error.log → Instance - 26682-37056.error.log } +65 -57
  236. data/spec/support/logs/{Instance - 11091-33954.error.log → Instance - 2669-56818.error.log } +56 -37
  237. data/spec/support/logs/Instance - 27547-3928.error.log +309 -0
  238. data/spec/support/servers/plugins/autologin.rb +13 -1
  239. metadata +974 -782
  240. data/spec/support/logs/Dispatcher - 10129-46995.log +0 -9
  241. data/spec/support/logs/Dispatcher - 10139-63648.log +0 -19
  242. data/spec/support/logs/Dispatcher - 10149-5551.log +0 -17
  243. data/spec/support/logs/Dispatcher - 10158-34385.log +0 -13
  244. data/spec/support/logs/Dispatcher - 10167-55701.log +0 -9
  245. data/spec/support/logs/Dispatcher - 10176-8922.log +0 -9
  246. data/spec/support/logs/Dispatcher - 10185-53716.log +0 -11
  247. data/spec/support/logs/Dispatcher - 10198-44724.log +0 -11
  248. data/spec/support/logs/Dispatcher - 10211-7697.log +0 -11
  249. data/spec/support/logs/Dispatcher - 10224-3751.log +0 -35
  250. data/spec/support/logs/Dispatcher - 10285-7404.log +0 -21
  251. data/spec/support/logs/Dispatcher - 10294-56221.log +0 -21
  252. data/spec/support/logs/Dispatcher - 10303-2483.log +0 -23
  253. data/spec/support/logs/Dispatcher - 10344-60543.log +0 -19
  254. data/spec/support/logs/Dispatcher - 10355-31708.log +0 -17
  255. data/spec/support/logs/Dispatcher - 10364-63170.log +0 -15
  256. data/spec/support/logs/Dispatcher - 10377-37936.log +0 -11
  257. data/spec/support/logs/Dispatcher - 10390-37511.log +0 -9
  258. data/spec/support/logs/Dispatcher - 10400-29603.log +0 -9
  259. data/spec/support/logs/Dispatcher - 10409-57042.log +0 -9
  260. data/spec/support/logs/Dispatcher - 10418-17812.log +0 -9
  261. data/spec/support/logs/Dispatcher - 10427-59862.log +0 -11
  262. data/spec/support/logs/Dispatcher - 10440-48351.log +0 -9
  263. data/spec/support/logs/Dispatcher - 10449-24218.log +0 -9
  264. data/spec/support/logs/Dispatcher - 10458-54646.log +0 -9
  265. data/spec/support/logs/Dispatcher - 10511-3333.log +0 -63
  266. data/spec/support/logs/Dispatcher - 10520-50009.log +0 -43
  267. data/spec/support/logs/Dispatcher - 10529-44870.log +0 -39
  268. data/spec/support/logs/Dispatcher - 10538-49556.log +0 -34
  269. data/spec/support/logs/Dispatcher - 10547-61887.log +0 -28
  270. data/spec/support/logs/Dispatcher - 10556-31163.log +0 -21
  271. data/spec/support/logs/Dispatcher - 10565-40008.log +0 -13
  272. data/spec/support/logs/Dispatcher - 10575-18836.log +0 -9
  273. data/spec/support/logs/Dispatcher - 10747-32268.log +0 -19
  274. data/spec/support/logs/Dispatcher - 10757-4081.log +0 -21
  275. data/spec/support/logs/Dispatcher - 10766-49190.log +0 -15
  276. data/spec/support/logs/Dispatcher - 10780-46610.log +0 -19
  277. data/spec/support/logs/Dispatcher - 10789-5332.log +0 -21
  278. data/spec/support/logs/Dispatcher - 10798-56243.log +0 -15
  279. data/spec/support/logs/Dispatcher - 10920-32037.log +0 -17
  280. data/spec/support/logs/Dispatcher - 10929-35662.log +0 -21
  281. data/spec/support/logs/Dispatcher - 10938-64010.log +0 -13
  282. data/spec/support/logs/Dispatcher - 10951-44746.log +0 -19
  283. data/spec/support/logs/Dispatcher - 10961-55791.log +0 -21
  284. data/spec/support/logs/Dispatcher - 10972-58913.log +0 -15
  285. data/spec/support/logs/Dispatcher - 11023-45004.log +0 -17
  286. data/spec/support/logs/Dispatcher - 11033-55505.log +0 -21
  287. data/spec/support/logs/Dispatcher - 11042-46123.log +0 -13
  288. data/spec/support/logs/Dispatcher - 11055-26836.log +0 -17
  289. data/spec/support/logs/Dispatcher - 11064-60361.log +0 -21
  290. data/spec/support/logs/Dispatcher - 11073-17507.log +0 -13
  291. data/spec/support/logs/Dispatcher - 11298-28357.log +0 -19
  292. data/spec/support/logs/Dispatcher - 11307-62669.log +0 -21
  293. data/spec/support/logs/Dispatcher - 11316-9391.log +0 -15
  294. data/spec/support/logs/Dispatcher - 11340-45921.log +0 -21
  295. data/spec/support/logs/Dispatcher - 11349-8693.log +0 -25
  296. data/spec/support/logs/Dispatcher - 11358-53753.log +0 -15
  297. data/spec/support/logs/Dispatcher - 11394-29437.log +0 -17
  298. data/spec/support/logs/Dispatcher - 11403-59953.log +0 -21
  299. data/spec/support/logs/Dispatcher - 11412-51134.log +0 -13
  300. data/spec/support/logs/Dispatcher - 11425-42569.log +0 -21
  301. data/spec/support/logs/Dispatcher - 11434-16150.log +0 -25
  302. data/spec/support/logs/Dispatcher - 11443-19072.log +0 -15
  303. data/spec/support/logs/Dispatcher - 11479-39149.log +0 -17
  304. data/spec/support/logs/Dispatcher - 11488-42169.log +0 -21
  305. data/spec/support/logs/Dispatcher - 11497-29822.log +0 -13
  306. data/spec/support/logs/Dispatcher - 11510-8273.log +0 -17
  307. data/spec/support/logs/Dispatcher - 11519-18206.log +0 -21
  308. data/spec/support/logs/Dispatcher - 11528-55825.log +0 -13
  309. data/spec/support/logs/Dispatcher - 9969-52890.log +0 -9
  310. data/spec/support/logs/Dispatcher - 9996-38451.log +0 -21
@@ -19,7 +19,7 @@
19
19
  #
20
20
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
21
21
  #
22
- # @version 0.1.2
22
+ # @version 0.1.3
23
23
  #
24
24
  # @see http://cwe.mitre.org/data/definitions/90.html
25
25
  # @see http://projects.webappsec.org/w/page/13246947/LDAP-Injection
@@ -47,7 +47,7 @@ class Arachni::Modules::LDAPInjection < Arachni::Module::Base
47
47
  in user input validation.},
48
48
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
49
49
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
50
- version: '0.1.2',
50
+ version: '0.1.3',
51
51
  references: {
52
52
  'WASC' => 'http://projects.webappsec.org/w/page/13246947/LDAP-Injection',
53
53
  'OWASP' => 'http://www.owasp.org/index.php/LDAP_injection'
@@ -55,14 +55,39 @@ class Arachni::Modules::LDAPInjection < Arachni::Module::Base
55
55
  targets: %w(Generic),
56
56
  issue: {
57
57
  name: %q{LDAP Injection},
58
- description: %q{LDAP queries can be injected into the web application
59
- which can be used to disclose sensitive data of affect the execution flow.},
58
+ description: %q{Lightweight Directory Access Protocol (LDAP)
59
+ is used by web applications to access and maintain directory
60
+ information services. One of the most common uses for LDAP
61
+ is to provide a single sign on service that will allow
62
+ clients to authenticate with a web site without any
63
+ interaction (assuming their credentials have been validated
64
+ by another service). LDAP injection occurs when untrusted
65
+ data is used by the web application to query the LDAP
66
+ directory without prior sanitisation. This is a serious
67
+ security risk, as it could allow cyber-criminals the ability
68
+ to query, modify, or remove anything from the LDAP tree. It
69
+ could also allow other advanced injection techniques that
70
+ perform other more serious attacks. Arachni was able to
71
+ detect a page that is vulnerable to LDAP injection.},
60
72
  tags: %w(ldap injection regexp),
61
73
  cwe: '90',
62
74
  severity: Severity::HIGH,
63
75
  cvssv2: '',
64
- remedy_guidance: %q{User inputs must be validated and filtered
65
- before being used in an LDAP query.},
76
+ remedy_guidance: %q{It is recommended that untrusted or
77
+ invalidated data is never used to form a LDAP query. To
78
+ validate data, the application should ensure that the
79
+ supplied value contains only the characters that are
80
+ required to perform the required action. For example, where
81
+ a username is required, then no non-alpha characters should
82
+ be accepted. If this is not possible, then special
83
+ characters should be escaped so they are treated
84
+ accordingly. The following characters should be escaped with
85
+ a '\' backslash; Ampersand, exclamation mark, pipe, equals,
86
+ less than, greater than, comma, plus, minus, double quote,
87
+ single quote, and semicolon. Additional character filtering
88
+ must be applied to; Open round bracket, close round bracket,
89
+ backslash, asterisks, forward slash, NUL. These characters
90
+ require ASCII escaping.},
66
91
  remedy_code: ''
67
92
  }
68
93
 
@@ -18,7 +18,7 @@
18
18
  #
19
19
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
20
20
  #
21
- # @version 0.2.1
21
+ # @version 0.2.2
22
22
  #
23
23
  # @see http://cwe.mitre.org/data/definitions/78.html
24
24
  # @see http://www.owasp.org/index.php/OS_Command_Injection
@@ -64,21 +64,42 @@ class Arachni::Modules::OSCmdInjection < Arachni::Module::Base
64
64
  description: %q{Tries to find operating system command injections.},
65
65
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
66
66
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
67
- version: '0.2.1',
67
+ version: '0.2.2',
68
68
  references: {
69
- 'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection'
69
+ 'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection',
70
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246950/OS%20Commanding'
70
71
  },
71
72
  targets: %w(Windows Unix),
72
73
  issue: {
73
74
  name: %q{Operating system command injection},
74
- description: %q{The web application allows an attacker to
75
- execute arbitrary OS commands.},
75
+ description: %q{To perform specific actions from within a
76
+ web application, it is occasionally required to run
77
+ Operating System commands (Linux or Windows) and have the output of
78
+ these commands captured by the web application and returned
79
+ to the client. OS command injection occurs when user supplied
80
+ input is inserted into one of these commands without proper
81
+ sanitisation and executed by the server. Cyber criminals
82
+ will abuse this weakness to perform their own arbitrary
83
+ commands on the server. This can include everything from
84
+ simple ping commands to map the internal network, to
85
+ obtaining full control of the server. Arachni was able to
86
+ inject specific Operating System commands and have the output from
87
+ that command contained within the server response. This
88
+ indicates that proper input sanitisation is not occurring.},
76
89
  tags: %w(os command code injection regexp),
77
90
  cwe: '78',
78
91
  severity: Severity::HIGH,
79
92
  cvssv2: '9.0',
80
- remedy_guidance: %q{User inputs must be validated and filtered
81
- before being evaluated as OS level commands.},
93
+ remedy_guidance: %q{It is recommended that untrusted or
94
+ non-validated data is never used to form a command to be
95
+ executed on the server. To validate data, the application
96
+ should ensure that the supplied value contains only the
97
+ characters that are required to perform the required action.
98
+ For example, where the form field expects an IP address,
99
+ only numbers and full stops should be accepted. Additionally
100
+ all control operators (&, &&, |, ||, $, \, #) should be
101
+ explicitly denied, and never accepted by as input by the
102
+ server.},
82
103
  remedy_code: '',
83
104
  metasploitable: 'unix/webapp/arachni_exec'
84
105
  }
@@ -14,16 +14,14 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # OS command injection module using timing attacks.
19
18
  #
20
19
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
21
20
  #
22
- # @version 0.3
21
+ # @version 0.3.1
23
22
  #
24
23
  # @see http://cwe.mitre.org/data/definitions/78.html
25
24
  # @see http://www.owasp.org/index.php/OS_Command_Injection
26
- #
27
25
  class Arachni::Modules::OSCmdInjectionTiming < Arachni::Module::Base
28
26
 
29
27
  prefer :os_cmd_injection
@@ -53,27 +51,43 @@ class Arachni::Modules::OSCmdInjectionTiming < Arachni::Module::Base
53
51
  description: %q{Tries to find operating system command injections using timing attacks.},
54
52
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
55
53
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
56
- version: '0.3',
54
+ version: '0.3.1',
57
55
  references: {
58
- 'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection'
56
+ 'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection',
57
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246950/OS%20Commanding'
59
58
  },
60
59
  targets: %w(Windows Unix),
61
60
  issue: {
62
61
  name: %q{Operating system command injection (timing attack)},
63
- description: %q{The web application allows an attacker to
64
- execute arbitrary OS commands even though it does not return
65
- the command output in the HTML body.
66
- (This issue was discovered using a timing attack; timing attacks
67
- can result in false positives in cases where the server takes
68
- an abnormally long time to respond.
69
- Either case, these issues will require further investigation
70
- even if they are false positives.)},
62
+ description: %q{To perform specific actions from within a
63
+ web application, it is occasionally required to run
64
+ Operating System commands (Linux or Windows) and have the output of
65
+ these commands captured by the web application and returned
66
+ to the client. OS command injection occurs when user supplied
67
+ input is inserted into one of these commands without proper
68
+ sanitisation and executed by the server. Cyber criminals
69
+ will abuse this weakness to perform their own arbitrary
70
+ commands on the server. This can include everything from
71
+ simple ping commands to map the internal network, to
72
+ obtaining full control of the server. By injecting OS
73
+ commands that take a specific amount of time to execute,
74
+ Arachni was able to detect time based OS command injection.
75
+ This indicates that proper input sanitisation is not
76
+ occurring.},
71
77
  tags: %w(os command code injection timing blind),
72
78
  cwe: '78',
73
79
  severity: Severity::HIGH,
74
80
  cvssv2: '9.0',
75
- remedy_guidance: %q{User inputs must be validated and filtered
76
- before being evaluated as OS level commands.},
81
+ remedy_guidance: %q{It is recommended that untrusted or
82
+ non-validated data is never used to form a command to be
83
+ executed on the server. To validate data, the application
84
+ should ensure that the supplied value contains only the
85
+ characters that are required to perform the required action.
86
+ For example, where the form field expects an IP address,
87
+ only numbers and full stops should be accepted. Additionally
88
+ all control operators (&, &&, |, ||, $, \, #) should be
89
+ explicitly denied, and never accepted by as input by the
90
+ server.},
77
91
  remedy_code: '',
78
92
  metasploitable: 'unix/webapp/arachni_exec'
79
93
  }
@@ -18,7 +18,7 @@
18
18
  #
19
19
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
20
20
  #
21
- # @version 0.4.1
21
+ # @version 0.4.2
22
22
  #
23
23
  # @see http://cwe.mitre.org/data/definitions/22.html
24
24
  # @see http://www.owasp.org/index.php/Path_Traversal
@@ -107,7 +107,7 @@ class Arachni::Modules::PathTraversal < Arachni::Module::Base
107
107
  based on the presence of relevant content in the HTML responses.},
108
108
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
109
109
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
110
- version: '0.4.1',
110
+ version: '0.4.2',
111
111
  references: {
112
112
  'OWASP' => 'http://www.owasp.org/index.php/Path_Traversal',
113
113
  'WASC' => 'http://projects.webappsec.org/Path-Traversal'
@@ -116,14 +116,50 @@ class Arachni::Modules::PathTraversal < Arachni::Module::Base
116
116
 
117
117
  issue: {
118
118
  name: %q{Path Traversal},
119
- description: %q{The web application enforces improper limitation
120
- of a pathname to a restricted directory.},
119
+ description: %q{Web applications occasionally use
120
+ parameter values to store the location of a file required by
121
+ the server. An example of this is often seen in error pages
122
+ where the actual file path for the error page is called the
123
+ parameter value. For example
124
+ 'yoursite.com/error.php?page=404.php'. A path traversal
125
+ occurs when the parameter value (ie. path to file being
126
+ called by the server) can be substituted with the relative
127
+ path of another resource which is located outside of the
128
+ applications working directory (web root). The server then
129
+ loads the resource and sends it in the response to the
130
+ client. Cyber-criminals will abuse this vulnerability to
131
+ view files that should otherwise not be accessible. A very
132
+ common example of this on a *nix server is where the cyber-
133
+ criminal will access the /etc/passwd file to retrieve a list
134
+ of users on the server. This attack would look similar to
135
+ 'yoursite.com/error.php?page=../../../../etc/passwd'. As
136
+ path traversal is based on the relative path, the payload
137
+ must first traverse the file system to the root directory,
138
+ and hence the string of '../../../../'. Arachni discovered
139
+ that it was possible to substitute a parameter value with
140
+ relative path to a common operating system file and have the
141
+ contents of the file sent back in the response.},
121
142
  tags: %w(path traversal injection regexp),
122
143
  cwe: '22',
123
144
  severity: Severity::HIGH,
124
145
  cvssv2: '4.3',
125
- remedy_guidance: %q{User inputs must be validated and filtered
126
- before being used as a part of a filesystem path.},
146
+ remedy_guidance: %q{It is recommended that untrusted or
147
+ non-validated data is never used to form a literal file
148
+ include request. To validate data, the application should
149
+ ensure that the supplied value for a file is permitted. This can
150
+ be achieved by performing whitelisting on the parameter
151
+ value. The whitelist should contain a list of pages that
152
+ the application is permitted to fetch resources from. If the
153
+ supplied value does not match any value in the whitelist
154
+ then the server should redirect to a standard error page. In
155
+ some scenarios where dynamic content is being requested it
156
+ may not be possible to perform validation of a list of
157
+ trusted resources, therefor the list must also become
158
+ dynamic (update as the files change), or perform filtering
159
+ to remove any unrequired user input such as semicolons or
160
+ periods etc. and only permit a-z0-9. It is also advised that
161
+ sensitive file are not stored within the web root, and that
162
+ the user permissions enforced by the directory are correct.},
127
163
  remedy_code: '',
128
164
  metasploitable: 'unix/webapp/arachni_path_traversal'
129
165
  }
@@ -14,7 +14,6 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # HTTP Response Splitting audit module.
19
18
  #
20
19
  # It audits links, forms and cookies.
@@ -22,12 +21,11 @@
22
21
  #
23
22
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
24
23
  #
25
- # @version 0.1.7
24
+ # @version 0.1.8
26
25
  #
27
26
  # @see http://cwe.mitre.org/data/definitions/20.html
28
27
  # @see http://www.owasp.org/index.php/HTTP_Response_Splitting
29
28
  # @see http://www.securiteam.com/securityreviews/5WP0E2KFGK.html
30
- #
31
29
  class Arachni::Modules::ResponseSplitting < Arachni::Module::Base
32
30
 
33
31
  def run
@@ -56,23 +54,42 @@ class Arachni::Modules::ResponseSplitting < Arachni::Module::Base
56
54
  if any of them end up in the response header.},
57
55
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
58
56
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
59
- version: '0.1.7',
57
+ version: '0.1.8',
60
58
  references: {
61
59
  'SecuriTeam' => 'http://www.securiteam.com/securityreviews/5WP0E2KFGK.html',
62
- 'OWASP' => 'http://www.owasp.org/index.php/HTTP_Response_Splitting'
60
+ 'OWASP' => 'http://www.owasp.org/index.php/HTTP_Response_Splitting',
61
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246931/HTTP%20Response%20Splitting'
63
62
  },
64
63
  targets: %w(Generic),
65
64
 
66
65
  issue: {
67
66
  name: %q{Response Splitting},
68
- description: %q{The web application includes user input
69
- in the response HTTP header.},
67
+ description: %q{HTTP response splitting occurs when
68
+ untrusted data (usually a client's request) is inserted into
69
+ the response headers without any sanitisation or validation.
70
+ If vulnerable, this allows a cyber-criminal to essentially
71
+ split the HTTP response into two. This is abused by the
72
+ cyber-criminal injecting both CR (aka, carriage return, %0d,
73
+ or /r) characters and LF (aka, line feed, %0a, or \n) which
74
+ will then form the split. If the CR or LF characters are not
75
+ processed by the server then it cannot be exploited. Along
76
+ with these characters, the cyber-criminal can then construct
77
+ their own arbitrary response headers and body which would
78
+ then form the second response. The second response is
79
+ entirely under their control, and then permits a number of
80
+ other attacks.},
70
81
  tags: %w(response splitting injection header),
71
82
  cwe: '20',
72
83
  severity: Severity::MEDIUM,
73
84
  cvssv2: '5.0',
74
- remedy_guidance: %q{User inputs must be validated and filtered
75
- before being included as part of the HTTP response headers.},
85
+ remedy_guidance: %q{It is recommended that untrusted or
86
+ non-validated data is never used to form the contents of the
87
+ response header. Where any untrusted source is required to
88
+ be used in the response headers, it is important to ensure
89
+ that any hazardous characters (%0d, %0a, /r, /n, and
90
+ potentially others) are prior to being used. This is
91
+ especially important when setting cookie values, redirecting,
92
+ or when virtual hosting.},
76
93
  remedy_code: '',
77
94
  }
78
95
 
data/modules/audit/rfi.rb CHANGED
@@ -14,7 +14,6 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # Simple Remote File Inclusion (and tutorial) module.
19
18
  #
20
19
  # It audits links, forms and cookies and will give you a good idea
@@ -22,12 +21,11 @@
22
21
  #
23
22
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
24
23
  #
25
- # @version 0.2
24
+ # @version 0.2.2
26
25
  #
27
26
  # @see http://cwe.mitre.org/data/definitions/94.html
28
27
  # @see http://projects.webappsec.org/Remote-File-Inclusion
29
28
  # @see http://en.wikipedia.org/wiki/Remote_File_Inclusion
30
- #
31
29
  class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::Module::Base
32
30
 
33
31
  #
@@ -117,7 +115,7 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
117
115
  #
118
116
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
119
117
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
120
- version: '0.2.1',
118
+ version: '0.2.2',
121
119
  references: {
122
120
  'WASC' => 'http://projects.webappsec.org/Remote-File-Inclusion',
123
121
  'Wikipedia' => 'http://en.wikipedia.org/wiki/Remote_File_Inclusion'
@@ -126,9 +124,26 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
126
124
 
127
125
  issue: {
128
126
  name: %q{Remote File Inclusion},
129
- description: %q{The web application can be forced to include
130
- 3rd party remote content which can often lead to arbitrary code
131
- execution, amongst other attacks.},
127
+ description: %q{Web applications occasionally use parameter
128
+ values to store the location of a file required by the server.
129
+ An example of this is often seen in error pages where the
130
+ actual file path for the error page is called the parameter
131
+ value. For example 'yoursite.com/error.php?page=404.php'. A
132
+ remote file inclusion occurs when the parameter value (ie.
133
+ path to file being called by the server) can be substituted
134
+ with the address of an external host, and the server then
135
+ performs a request to the external host and fetches the
136
+ resource. Taking the simple example above this would become
137
+ 'yoursite.com/error.asp?page=http://anothersite.com/somethingBad.php'.
138
+ In most circumstances the server will process the fetched
139
+ resource. Therefore if the resource matches that of the
140
+ framework being used (ASP, PHP, JSP, etc.) it is probable
141
+ that the resource will be executed on the vulnerable server.
142
+ Cyber-criminals will abuse this vulnerability to execute
143
+ arbitrary code on the server. Arachni discovered that it was
144
+ possible to substitute a parameter value with an external
145
+ resource and have the server fetch the resource and have it
146
+ returned to the client within the response. },
132
147
  tags: %w(remote file inclusion injection regexp),
133
148
  cwe: '94',
134
149
  #
@@ -141,8 +156,21 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
141
156
  #
142
157
  severity: Severity::HIGH,
143
158
  cvssv2: '7.5',
144
- remedy_guidance: %q{Enforce strict validation and filtering
145
- on user inputs.},
159
+ remedy_guidance: %q{It is recommended that untrusted or
160
+ non-validated data is never used to form a literal file
161
+ include request. To validate data, the application should
162
+ ensure that the supplied value for a file is permitted. This
163
+ can be achieved by performing whitelisting on the parameter
164
+ value. The whitelist should contain a list of pages (or
165
+ sites) that the application is permitted to fetch resources
166
+ from. If the supplied value does not match any value in the
167
+ whitelist then the server should redirect to a standard
168
+ error page. In some scenarios where dynamic content is being
169
+ requested it may not be possible to perform validation of a
170
+ list of trusted resources, therefor the list must also
171
+ become dynamic (update as the files change), or perform
172
+ filtering to remove any unrequired user input such as
173
+ semicolons or periods etc. and only permit a-z0-9.},
146
174
  remedy_code: '',
147
175
  metasploitable: 'unix/webapp/arachni_php_include'
148
176
  }
@@ -14,7 +14,6 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # Session fixation module.
19
18
  #
20
19
  # It identifies the session cookie by iterating through all cookies in the
@@ -29,8 +28,7 @@
29
28
  #
30
29
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
31
30
  #
32
- # @version 0.1
33
- #
31
+ # @version 0.1.1
34
32
  class Arachni::Modules::SessionFixation < Arachni::Module::Base
35
33
 
36
34
  def token
@@ -68,17 +66,50 @@ class Arachni::Modules::SessionFixation < Arachni::Module::Base
68
66
  description: %q{Checks whether or not the session cookie can be set to an arbitrary value.},
69
67
  elements: [ Element::FORM, Element::LINK ],
70
68
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
71
- version: '0.1',
69
+ version: '0.1.1',
72
70
  references: {
73
- 'OWASP - Session fixation' => 'hhttps://www.owasp.org/index.php/Session_fixation'
71
+ 'OWASP' => 'https://www.owasp.org/index.php/Session_fixation',
72
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246960/Session%20Fixation'
74
73
  },
75
74
  targets: %w(Generic),
76
75
  issue: {
77
76
  name: %q{Session fixation},
78
- description: %q{The web application allows the session ID to be fixed by a 3rd party.},
77
+ description: %q{HTTP by itself is a stateless protocol. Therefore
78
+ the server is unable to determine which requests are
79
+ performed by which client, and which clients are
80
+ authenticated or unauthenticated. The use of HTTP cookies
81
+ within the headers, allows a web server to identify each
82
+ individual client, and can therefore determine which clients
83
+ hold valid authentication from those that do not. These are
84
+ known as session cookies or session tokens. To prevent
85
+ clients from being able to guess each other's session token,
86
+ each assigned session token should be entirely random, and
87
+ be different whenever a session is established with the
88
+ server. Session fixation occurs when the client is able to
89
+ specify their own session token value, and the value of the
90
+ session cookie is not changed by the server after successful
91
+ authentication. Occasionally the session token will also
92
+ remain unchanged for the user independently of how many times
93
+ they have authenticated. Cyber-criminals will abuse this
94
+ functionality by sending crafted URL links with a
95
+ predetermined session token within the link. The cyber-
96
+ criminal will then wait for the victim to login and become
97
+ authenticated. If successful the cyber-criminal will know a
98
+ valid session ID, and therefore have access to the victim's
99
+ session. Arachni has discovered that it is able to set its
100
+ own session token, and during the login process remains
101
+ unchanged.},
79
102
  tags: %w(session cookie injection fixation hijacking),
80
103
  cwe: '384',
81
- severity: Severity::HIGH
104
+ severity: Severity::HIGH,
105
+ remedy_guidance: %q{The most important remediation action is to
106
+ prevent the server accepting client supplied tokens through
107
+ either a GET or POST request. Additionally, the client's
108
+ session token should be changed at specific key stages of
109
+ the application flow, such as during authentication. This
110
+ will ensure that even if clients are able to set their own
111
+ cookie, it will not persist into an authenticated session.
112
+ },
82
113
  }
83
114
  }
84
115
  end