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
@@ -20,7 +20,7 @@
20
20
  #
21
21
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
22
22
  #
23
- # @version 0.2
23
+ # @version 0.2.1
24
24
  #
25
25
  # @see http://cwe.mitre.org/data/definitions/540.html
26
26
  class Arachni::Modules::SourceCodeDisclosure < Arachni::Module::Base
@@ -122,19 +122,55 @@ class Arachni::Modules::SourceCodeDisclosure < Arachni::Module::Base
122
122
  can be forced to reveal source code.},
123
123
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
124
124
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
125
- version: '0.2',
125
+ version: '0.2.1',
126
126
  targets: %w(PHP ASP JSP),
127
127
  references: {
128
128
  'CWE' => 'http://cwe.mitre.org/data/definitions/540.html'
129
129
  },
130
130
  issue: {
131
131
  name: %q{Source code disclosure},
132
- description: %q{The web application can be forced to reveal source code.},
132
+ description: %q{A modern web application will be reliant on
133
+ several different programming languages. These languages can
134
+ be broken up into two flavours. These are client side
135
+ languages such as those that run in the browser eg.
136
+ JavaScript and HTML, and server side languages that are
137
+ executed by the server (ASP, PHP, JSP, etc) to form the
138
+ dynamic pages (client side code) that are then sent to the
139
+ client. Because all server side code should be executed by
140
+ the server, it should never be seen by the client. However
141
+ in some scenarios, it is possible that 1. The server side
142
+ code has syntax errors and therefore is not executed by the
143
+ server but is instead sent to the client, or 2. Using
144
+ crafted requests it is possible to force the server into
145
+ displaying the source code of the application without
146
+ executing it. As the server side source code often contains
147
+ sensitive information such as database connection strings or
148
+ details into the application workflow this can be extremely
149
+ risky. Cyber-criminals will attempt to discover pages that
150
+ either accidentally or forcefully allow the server side source
151
+ code to be disclosed, to assist in discovering further
152
+ vulnerabilities or sensitive information. Arachni has
153
+ detected server side source code within the server's
154
+ response. Note: false positives may occur when requesting
155
+ binary files such as images (.JPG or .PNG) and may require
156
+ manual verification.},
133
157
  tags: %w(code source file inclusion disclosure),
134
158
  cwe: '540',
135
159
  severity: Severity::HIGH,
136
- remedy_guidance: %q{User inputs must be validated and filtered
137
- before being included in a file-system path during file reading operations.},
160
+ remedy_guidance: %q{If confirmation reveals the leakage of
161
+ server side source code, then the following remediation
162
+ actions should be applied. Determine the context in which
163
+ the source code is disclosed. ie. Caused through coding
164
+ errors, or abusing existing functionality. If due to errors
165
+ in the server side code, then the code causing the
166
+ disclosure should be rewritten. If it is through the abuse
167
+ of existing functionality then it is important that input
168
+ sanitisation be conducted to prevent application files (ASP,
169
+ JSP, PHP or config files) from being called. It is also
170
+ important that the file system permissions are correctly
171
+ configured, and that all unused files are removed from the
172
+ web root. If these are not an option, then the vulnerable
173
+ file should be removed from the server.},
138
174
  }
139
175
 
140
176
  }
@@ -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/89.html
24
24
  # @see http://unixwiz.net/techtips/sql-injection.html
@@ -71,24 +71,75 @@ class Arachni::Modules::SQLInjection < Arachni::Module::Base
71
71
  description: %q{SQL injection module, uses known SQL DB errors to identify vulnerabilities.},
72
72
  elements: [Element::LINK, Element::FORM, Element::COOKIE, Element::HEADER],
73
73
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
74
- version: '0.2.1',
74
+ version: '0.2.2',
75
75
  references: {
76
76
  'UnixWiz' => 'http://unixwiz.net/techtips/sql-injection.html',
77
77
  'Wikipedia' => 'http://en.wikipedia.org/wiki/SQL_injection',
78
78
  'SecuriTeam' => 'http://www.securiteam.com/securityreviews/5DP0N1P76E.html',
79
- 'OWASP' => 'http://www.owasp.org/index.php/SQL_Injection'
79
+ 'OWASP' => 'http://www.owasp.org/index.php/SQL_Injection',
80
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246963/SQL%20Injection',
81
+ 'W3 Schools' => 'http://www.w3schools.com/sql/sql_injection.asp'
80
82
  },
81
83
  targets: %w(Oracle ColdFusion InterBase PostgreSQL MySQL MSSQL EMC
82
84
  SQLite DB2 Informix Firebird MaxDB Sybase Frontbase Ingres HSQLDB),
83
85
  issue: {
84
86
  name: %q{SQL Injection},
85
- description: %q{SQL code can be injected into the web application.},
87
+ description: %q{Databases are used to store data. Due to the
88
+ requirement for dynamic content of today's web applications,
89
+ many web applications rely on a database backend to store
90
+ data that will be called upon and processed by the web
91
+ application (or other programs). Web applications retrieve
92
+ data from the database by using a Structured Query Language
93
+ (SQL) query. To meet demands of many developers, database
94
+ servers (such as MSSQL, MySQL, Oracle etc.) have
95
+ additional built-in functionality that can allow extensive
96
+ control of the database and interaction with the host
97
+ operating system itself. An SQL injection occurs when a
98
+ value originating from the client's request is used within an
99
+ SQL query without prior sanitisation. This could allow the
100
+ cyber-criminal to steal the data stored in the database, or
101
+ use the additional functionality of the database server to
102
+ take complete control of the server. When discovered, this
103
+ allows cyber-criminals the ability to inject their own SQL
104
+ query (injected query will normally be placed within the
105
+ existing application query) and have it executed by the
106
+ database server. The successful exploitation of a SQL
107
+ injection can be a devastating to an organisation, and is
108
+ one of the most commonly exploited web application
109
+ vulnerabilities. To discover a SQL injection, Arachni
110
+ injects multiple different payloads into specific locations
111
+ within the client request. Arachni discovered that the
112
+ affected page and parameter may be vulnerable. This
113
+ injection was detected as Arachni was able to cause the
114
+ server to respond to the request with a database related
115
+ error. This is the easiest form of detection, and is known
116
+ as error based SQL injection vulnerability.},
86
117
  tags: %w(sql injection regexp database error),
87
118
  cwe: '89',
88
119
  severity: Severity::HIGH,
89
120
  cvssv2: '9.0',
90
- remedy_guidance: 'User inputs must be validated and filtered
91
- before being included in database queries.',
121
+ remedy_guidance: %q{The only proven method to prevent against
122
+ SQL injection attacks while still maintaining full
123
+ application functionality is to use parameterized queries
124
+ (also known as prepared statements). When utilising this
125
+ method of querying the database any value supplied by the
126
+ client will be handled as a string value rather than part of
127
+ the SQL query. Additionally, when utilising parameterized
128
+ queries, the database engine will automatically check to
129
+ make sure the string being used matches that of the column.
130
+ For example the database engine will check the user supplied
131
+ input is an integer if the database column is also an
132
+ integer. Depending on the framework being used,
133
+ implementation of parameterized queries will differ.
134
+ Other methods to help protect against SQL injection
135
+ vulnerabilities exist however are not as effective and may
136
+ either limit web application functionality, or remain
137
+ vulnerable.
138
+ Additional remediation activities such as configuring strict
139
+ database permissions to limit queries that can be executed,
140
+ and configuring the webserver to display custom error
141
+ messages to prevent error based detection will both further
142
+ reduce the risk.},
92
143
  metasploitable: 'auxiliary/arachni_sqlmap'
93
144
  }
94
145
  }
@@ -21,7 +21,7 @@
21
21
  #
22
22
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
23
23
  #
24
- # @version 0.4.1
24
+ # @version 0.4.2
25
25
  #
26
26
  # @see http://cwe.mitre.org/data/definitions/89.html
27
27
  # @see http://capec.mitre.org/data/definitions/7.html
@@ -64,25 +64,70 @@ class Arachni::Modules::BlindrDiffSQLInjection < Arachni::Module::Base
64
64
  with that of a vulnerable application.},
65
65
  elements: [ Element::LINK, Element::FORM, Element::COOKIE ],
66
66
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
67
- version: '0.4.1',
67
+ version: '0.4.2',
68
68
  references: {
69
69
  'OWASP' => 'http://www.owasp.org/index.php/Blind_SQL_Injection',
70
- 'MITRE - CAPEC' => 'http://capec.mitre.org/data/definitions/7.html'
70
+ 'MITRE - CAPEC' => 'http://capec.mitre.org/data/definitions/7.html',
71
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246963/SQL%20Injection',
72
+ 'W3 Schools' => 'http://www.w3schools.com/sql/sql_injection.asp'
71
73
  },
72
74
  targets: %w(Generic),
73
75
 
74
76
  issue: {
75
77
  name: %q{Blind SQL Injection (differential analysis)},
76
- description: %q{SQL code can be injected into the web application
77
- even though it may not be obvious due to suppression of error messages.},
78
+ description: %q{Databases are used to store data. Due to the
79
+ requirement for dynamic content of today's web applications,
80
+ many web applications rely on a database backend to store
81
+ data that will be called upon and processed by the web
82
+ application (or other programs). Web applications retrieve
83
+ data from the database by using a Structured Query Language
84
+ (SQL) query. To meet demands of many developers, database
85
+ servers (such as MSSQL, MySQL, Oracle etc.) have additional
86
+ built-in functionality that can allow extensive control of
87
+ the database and interaction with the host operating system
88
+ itself. An SQL injection occurs when a value originating
89
+ from the client's request is used within an SQL query without
90
+ prior sanitisation. This could allow the cyber-criminal to
91
+ steal the data stored in the database, or use the additional
92
+ functionality of the database server to take complete
93
+ control of the server. When discovered, this allows cyber-
94
+ criminals the ability to inject their own SQL query
95
+ (injected query will normally be placed within the existing
96
+ application query) and have it executed by the database
97
+ server. The successful exploitation of a SQL injection can
98
+ be a devastating to an organisation, and is one of the most
99
+ commonly exploited web application vulnerabilities. To
100
+ discover a SQL injection, Arachni injects multiple different
101
+ payloads into specific locations within the client request.
102
+ Arachni discovered that the affected page and parameter may
103
+ be vulnerable. This injection was detected as Arachni was
104
+ able to inject specific SQL queries that if vulnerable
105
+ result in the responses for each injection being different.
106
+ This is known as a blind SQL injection vulnerability.},
78
107
  tags: %w(sql blind rdiff injection database),
79
108
  cwe: '89',
80
109
  severity: Severity::HIGH,
81
110
  cvssv2: '9.0',
82
- remedy_guidance: %q{Suppression of error messages leads to
83
- security through obscurity which is not a good practise.
84
- The web application needs to enforce stronger validation
85
- on user inputs.},
111
+ remedy_guidance: %q{The only proven method to prevent against
112
+ SQL injection attacks while still maintaining full
113
+ application functionality is to use parameterized queries
114
+ (also known as prepared statements). When utilising this
115
+ method of querying the database any value supplied by the
116
+ client will be handled as a string value rather than part of
117
+ the SQL query. Additionally, when utilising parameterized
118
+ queries, the database engine will automatically check to
119
+ make sure the sting being used matches that of the column.
120
+ For example the database engine will check the user supplied
121
+ input is an integer if the database column is also an
122
+ integer. Depending on the framework being used,
123
+ implementation of parameterized queries will differ.
124
+ Other methods to help protect against SQL injection
125
+ vulnerabilities exist however are not as effective and may
126
+ either limit web application functionality, or remain
127
+ vulnerable.
128
+ Additional remediation activities such as configuring strict
129
+ database permissions to limit queries that can be executed
130
+ will further reduce the risk.},
86
131
  remedy_code: '',
87
132
  metasploitable: 'unix/webapp/arachni_sqlmap'
88
133
  }
@@ -18,7 +18,7 @@
18
18
  #
19
19
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
20
20
  #
21
- # @version 0.3.1
21
+ # @version 0.3.2
22
22
  #
23
23
  # @see http://cwe.mitre.org/data/definitions/89.html
24
24
  # @see http://capec.mitre.org/data/definitions/7.html
@@ -50,30 +50,73 @@ class Arachni::Modules::BlindTimingSQLInjection < Arachni::Module::Base
50
50
  connection suddenly chokes up this module will probably produce false positives).},
51
51
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
52
52
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
53
- version: '0.3',
53
+ version: '0.3.2',
54
54
  references: {
55
55
  'OWASP' => 'http://www.owasp.org/index.php/Blind_SQL_Injection',
56
- 'MITRE - CAPEC' => 'http://capec.mitre.org/data/definitions/7.html'
56
+ 'MITRE - CAPEC' => 'http://capec.mitre.org/data/definitions/7.html',
57
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246963/SQL%20Injection',
58
+ 'W3 Schools' => 'http://www.w3schools.com/sql/sql_injection.asp'
57
59
  },
58
60
  targets: %w(MySQL PostgreSQL MSSQL),
59
61
  issue: {
60
62
  name: %q{Blind SQL Injection (timing attack)},
61
- description: %q{SQL code can be injected into the web application
62
- even though it may not be obvious due to suppression of error messages.
63
- (This issue was discovered using a timing attack; timing attacks
64
- can result in false positives in cases where the server takes
65
- an abnormally long time to respond.
66
- Either case, these issues will require further investigation
67
- even if they are false positives.)},
63
+ description: %q{Databases are used to store data. Due to the
64
+ requirement for dynamic content of today's web applications,
65
+ many web applications rely on a database backend to store
66
+ data that will be called upon and processed by the web
67
+ application (or other programs). Web applications retrieve
68
+ data from the database by using a Structured Query Language
69
+ (SQL) query. To meet demands of many developers, database
70
+ servers (such as MSSQL, MySQL, Oracle etc.) have
71
+ additional built-in functionality that can allow extensive
72
+ control of the database and interaction with the host
73
+ operating system itself. An SQL injection occurs when a
74
+ value originating from the clients request is used within an
75
+ SQL query without prior sanitisation. This could allow the
76
+ cyber-criminal to steal the data stored in the database, or
77
+ use the additional functionality of the database server to
78
+ ake complete control of the server. When discovered, this
79
+ allows cyber-criminals the ability to inject their own SQL
80
+ query (injected query will normally be placed within the
81
+ existing application query) and have it executed by the
82
+ database server. The successful exploitation of a SQL
83
+ injection can be a devastating to an organisation, and is
84
+ one of the most commonly exploited web application
85
+ vulnerabilities. To discover a SQL injection, Arachni
86
+ injects multiple different payloads into specific locations
87
+ within the client request. Arachni discovered that the
88
+ affected page and parameter may be vulnerable. This
89
+ injection was detected as Arachni was able to inject
90
+ specific SQL queries containing 'waits' and/or 'benchmarks'
91
+ that if vulnerable result in the responses for each request
92
+ being delayed before being send by the server. For example
93
+ if the injection payload told the database server to way for
94
+ 20 seconds, then the client will receive the response 20
95
+ seconds after making the initial request. This is known as a
96
+ time based blind SQL injection vulnerability.},
68
97
  tags: %w(sql blind timing injection database),
69
98
  cwe: '89',
70
99
  severity: Severity::HIGH,
71
100
  cvssv2: '9.0',
72
- remedy_guidance: %q{Suppression of error messages leads to
73
- security through obscurity which is not a good practise.
74
- The web application needs to enforce stronger validation
75
- on user inputs.},
76
- remedy_code: '',
101
+ remedy_guidance: %q{The only proven method to prevent against
102
+ SQL injection attacks while still maintaining full
103
+ application functionality is to use parameterized queries
104
+ (also known as prepared statements). When utilising this
105
+ method of querying the database any value supplied by the
106
+ client will be handled as a string value rather than part of
107
+ the SQL query. Additionally, when utilising parameterized
108
+ queries, the database engine will automatically check to
109
+ make sure the sting being used matches that of the column.
110
+ For example the database engine will check the user supplied
111
+ input is an integer if the database column is also an
112
+ integer. Depending on the framework being used,
113
+ implementation of parameterized queries will differ. Other methods to
114
+ help protect against SQL injection vulnerabilities exist
115
+ however are not as effective and may either limit web
116
+ application functionality, or remain vulnerable.
117
+ Additional remediation activities such as configuring strict
118
+ database permissions to limit queries that can be executed
119
+ will further reduce the risk.},
77
120
  metasploitable: 'unix/webapp/arachni_sqlmap'
78
121
  }
79
122
 
@@ -14,7 +14,6 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # Unvalidated redirect audit module.
19
18
  #
20
19
  # It audits links, forms and cookies, injects URLs and checks the `Location`
@@ -22,10 +21,9 @@
22
21
  #
23
22
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
24
23
  #
25
- # @version 0.1.5
24
+ # @version 0.1.6
26
25
  #
27
26
  # @see http://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards
28
- #
29
27
  class Arachni::Modules::UnvalidatedRedirect < Arachni::Module::Base
30
28
 
31
29
  def self.payloads
@@ -50,20 +48,42 @@ class Arachni::Modules::UnvalidatedRedirect < Arachni::Module::Base
50
48
  to determnine whether the attack was successful.},
51
49
  elements: [Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER],
52
50
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
53
- version: '0.1.5',
51
+ version: '0.1.6',
54
52
  references: {
55
- 'OWASP Top 10 2010' => 'http://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards'
53
+ 'OWASP' => 'http://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards',
54
+ 'WASC' => 'http://projects.webappsec.org/w/page/13246981/URL%20Redirector%20Abuse'
56
55
  },
57
56
  targets: %w(Generic),
58
57
 
59
58
  issue: {
60
59
  name: %q{Unvalidated redirect},
61
- description: %q{The web application redirects users to unvalidated URLs.},
62
- tags: %w(unvalidated redirect injection header location),
60
+ description: %q{Web applications occasionally use
61
+ parameter values to store the address of the page to which
62
+ the client will be redirected. As an example, this is
63
+ often seen in error pages where the error page is the page
64
+ to be displayed. For example
65
+ 'yoursite.com/page.asp?redirect=www.yoursite.com/404.asp'.
66
+ An unvalidated redirect occurs when the client is able to
67
+ modify the affected parameter value in the request and have
68
+ a redirect response to the new value sent by the server.
69
+ Therefore, redirecting the client to that site. For example,
70
+ the following request 'yoursite.com/page.asp?redirect=www.anothersite.com'
71
+ will redirect to 'anothersite.com'. Cyber-criminals will abuse
72
+ these vulnerabilities in social engineering attacks to get
73
+ users to unknowingly visit a malicious site hosted by the
74
+ cyber-criminal. Arachni has discovered that the server does
75
+ not validate the parameter value prior to redirecting the
76
+ client to the injected value.},
77
+ tags: %w(unvalidated redirect injection header location),
63
78
  cwe: '819',
64
79
  severity: Severity::MEDIUM,
65
- remedy_guidance: %q{Server side verification should be employed
66
- to ensure that the redirect destination is the one intended.}
80
+ remedy_guidance: %q{The application should ensure that the
81
+ supplied value for a redirect is permitted. This can be
82
+ achieved by performing whitelisting on the parameter value.
83
+ The whitelist should contain a list of pages or sites that
84
+ the application is permitted to redirect users to. If the
85
+ supplied value does not match any value in the whitelist
86
+ then the server should redirect to a standard error page.}
67
87
  }
68
88
  }
69
89
  end
@@ -14,17 +14,15 @@
14
14
  limitations under the License.
15
15
  =end
16
16
 
17
- #
18
17
  # XPath Injection audit module.
19
18
  #
20
19
  # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
21
20
  #
22
- # @version 0.1.3
21
+ # @version 0.1.4
23
22
  #
24
23
  # @see http://cwe.mitre.org/data/definitions/91.html
25
24
  # @see http://www.owasp.org/index.php/XPATH_Injection
26
25
  # @see http://www.owasp.org/index.php/Testing_for_XPath_Injection_%28OWASP-DV-010%29
27
- #
28
26
  class Arachni::Modules::XPathInjection < Arachni::Module::Base
29
27
 
30
28
  def self.error_strings
@@ -50,19 +48,48 @@ class Arachni::Modules::XPathInjection < Arachni::Module::Base
50
48
  description: %q{XPath injection module},
51
49
  elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
52
50
  author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
53
- version: '0.1.3',
51
+ version: '0.1.4',
54
52
  references: {
55
- 'OWASP' => 'http://www.owasp.org/index.php/XPATH_Injection'
53
+ 'OWASP' => 'http://www.owasp.org/index.php/XPATH_Injection',
54
+ 'WASC' => 'http://projects.webappsec.org/w/page/13247005/XPath%20Injection'
56
55
  },
57
56
  targets: %w(General PHP Java dotNET libXML2),
58
57
  issue: {
59
58
  name: %q{XPath Injection},
60
- description: %q{XPath queries can be injected into the web application.},
59
+ description: %q{XML Path Language (XPath) queries are used
60
+ by web applications for selecting nodes from XML documents.
61
+ Once selected, the value of these nodes can then be used by
62
+ the application. A simple example for the use of XML
63
+ documents is to store user information. As part of the
64
+ authentication process, the application will perform an
65
+ XPath query to confirm the login credentials and retrieve
66
+ that user's information to use in the following request.
67
+ XPath injection occurs where untrusted data is used to build
68
+ the XPath query. Cyber-criminals may abuse this injection
69
+ vulnerability to bypass authentication, query other user's
70
+ information, or, if the XML document contains privileged user
71
+ credentials, allow the cyber-criminal to escalate their
72
+ privileges. Arachni injected XPath queries into the page,
73
+ and based on the responses from the server, has discovered
74
+ the page is vulnerable to XPath injection.},
61
75
  tags: %w(xpath database error injection regexp),
62
76
  cwe: '91',
63
77
  severity: Severity::HIGH,
64
- remedy_guidance: 'User inputs must be validated and filtered
65
- before being included in database queries.',
78
+ remedy_guidance: %q{The preferred way to protect against XPath
79
+ injection is to utilise parameterized (also known as prepared)
80
+ XPath queries. When utilising this method of querying the
81
+ XML document any value supplied by the client will be
82
+ handled as a string rather than part of the XPath query. An
83
+ alternative to parameterized queries it to use precompiled
84
+ XPath queries. Precompiled XPath queries are not generated
85
+ dynamically and will therefor never process user supplied
86
+ input as XPath. Depending on the framework being used,
87
+ implementation of parameterized queries or precompiled queries
88
+ will differ. Depending on the framework being used by the
89
+ application parameterized queries and/or precompiled queries
90
+ may not be possible. In this case, input filtering on all
91
+ untrusted input should occur to ensure that it is not
92
+ included as part of the query.}
66
93
  }
67
94
  }
68
95
  end